モジュール ngx_http_dav_module

構成例
ディレクティブ
     create_full_put_path
     dav_access
     dav_methods
     min_delete_depth

ngx_http_dav_module モジュールは、WebDAV プロトコルによるファイル管理の自動化を目的としています。このモジュールは HTTP と WebDAV メソッドの PUT、DELETE、MKCOL、COPY、および MOVE を処理します。

このモジュールはデフォルトではビルドされません。--with-http_dav_module 構成パラメータを使用して有効にする必要があります。

他の WebDAV メソッドも必要とする WebDAV クライアントはこのモジュールでは動作しません。

構成例

location / {
    root                  /data/www;

    client_body_temp_path /data/client_temp;

    dav_methods PUT DELETE MKCOL COPY MOVE;

    create_full_put_path  on;
    dav_access            group:rw  all:r;

    limit_except GET {
        allow 192.168.1.0/32;
        deny  all;
    }
}

ディレクティブ

構文 create_full_put_path on | off;
デフォルト
create_full_put_path off;
コンテキスト httpserverlocation

WebDAV の仕様では、既存のディレクトリにのみファイルを作成できます。このディレクティブを使用すると、必要な中間ディレクトリをすべて作成できます。

構文 dav_access users:permissions ...;
デフォルト
dav_access user:rw;
コンテキスト httpserverlocation

新しく作成したファイルとディレクトリのアクセス権を設定します。例:

dav_access user:rw group:rw all:r;

group または all アクセス権を指定した場合、user 権限は省略できます。

dav_access group:rw all:r;

構文 dav_methods off | method ...;
デフォルト
dav_methods off;
コンテキスト httpserverlocation

指定された HTTP および WebDAV メソッドを許可します。パラメータ off は、このモジュールで処理するすべてのメソッドを拒否します。サポートされているメソッドは次のとおりです: PUTDELETEMKCOLCOPY、および MOVE

PUT メソッドでアップロードされたファイルは最初に一時ファイルに書き込まれ、その後、ファイル名が変更されます。バージョン 0.8.9 以降、一時ファイルと永続ストアを別のファイルシステム上にすることができます。ただし、この場合、ファイルは格安の名前変更操作ではなく、2 つのファイルシステム間でコピーされることに注意してください。したがって、任意の location に保存されたファイルと、client_body_temp_path ディレクティブで設定された一時ファイルが格納されているディレクトリの両方を同じファイルシステムに配置することをお勧めします。

PUT メソッドを使用してファイルを作成する場合、変更日は「Date」ヘッダーフィールドで渡すことで指定できます。

構文 min_delete_depth number;
デフォルト
min_delete_depth 0;
コンテキスト httpserverlocation

DELETE メソッドを使用してファイルを削除できるようにするには、リクエストパスの要素の数が指定した数以上である必要があります。たとえば、ディレクティブ

min_delete_depth 4;

は、リクエストでファイルの削除を許可します。

/users/00/00/name
/users/00/00/name/pic.jpg
/users/00/00/page.html

また、次を削除することを拒否します。

/users/00/00