Nextcloud

Nextcloud から 外部システムへWebDAV送受信時のタイムアウトについて

Nextcloud からWebDAV接続でマウントした外部ストレージへのファイル送受信時にタイムアウトが発生することがあります。

エラーログの例(nextcloud.log より抜粋):

"Message": "cURL error 28: Operation timed out after 30000 milliseconds with 0 bytes received (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://{通信先}/remote.php/webdav/{path_to_file} "

このタイムアウトは、config.php の davstorage.request_timeout パラメータで調整できます。
デフォルト値(未設定)は30秒です。

'davstorage.request_timeout' => 30,

パラメータの説明はこちら
https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#davstorage-request-timeout

davstorage.request_timeout は、Nextcloud の DAV コンポーネントが外部サーバーへリクエストを送信する際のタイムアウトです。
公式ドキュメントではフェデレーション共有が例としてあげられていますが、同じ仕組みのため以下のような処理にも影響します。

  • フェデレーション共有
  • WebDAV 外部ストレージへのアップロード、ダウンロード
  • 別の Nextcloud インスタンスを外部ストレージとして接続している場合のコピー操作

タイムアウト値は、1つのファイルの転送開始から完了までの総時間です。
フォルダをコピーした場合にも、フォルダ内のファイル1つ分の転送時間に適用されます。

サイズの大きいファイルだけ転送に失敗するというような時には、このパラメータを疑ってみてください。

以上、現場からお届けしました。