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_moduleconfigureパラメータを有効にする必要があります。

操作のために追加の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;
コンテキスト: http, server, location

WebDAV仕様は既に存在するディレクトリにファイルを作成する事だけを許可します。このディレクティブは全ての必要な中間のディレクトリを作成することを許可します。

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

新しく作成されたファイルとディレクトリにアクセスパーミッションを設定します。例えば:

dav_access user:rw group:rw all:r;

何らかのgroup または all アクセスパーミッションが指定された場合には、userパーミッションは省略されるかも知れません:

dav_access group:rw all:r;

構文: dav_methods off | method ...;
デフォルト:
dav_methods off;
コンテキスト: http, server, location

指定されたHTTPとWebDAVメソッドを許可します。パラメータoffはこのモジュールで処理される全てのメソッドを拒否します。次のメソッドがサポートされています: PUT, DELETE, MKCOL, COPYMOVE

PUTメソッドでアップロードされたファイルはまず一時ファイルに書き込まれ、それからファイルがリネームされます。バージョン0.8.9から、一時ファイルと恒久的な保存は別のファイルシステムに置くことができます。しかし、この場合に注意が必要なのは、手軽なリネーム操作の代わりにファイルは二つのファイルシステムを超えてコピーされるということです。従って、いずれの指定されたlocationの保存されたファイルと一時ファイルを保持するディレクトリの両方が、client_body_temp_path ディレクティブによって同じファイルシステムに配置することが薦められます。

PUTメソッドでファイルを作成する場合は、修正日時を"Date"ヘッダフィールドの中に入れて渡すことで指定することができます。

構文: min_delete_depth number;
デフォルト:
min_delete_depth 0;
コンテキスト: http, server, location

DELETEメソッドが、リクエストのパスでの要素の数が指定された数以上のファイルを削除するようにします。例えば、ディレクティブ

min_delete_depth 4;

リクエストの次のファイルの削除を許可します

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

そして、次の削除を拒否します

/users/00/00

TOP
inserted by FC2 system