模組 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;
上下文 http, server, location

WebDAV 規範僅允許在已存在的目錄中建立檔案。此指令允許建立所有需要的中間目錄。

語法 dav_access users:permissions ...;
預設
dav_access user:rw;
上下文 http, server, location

設定新建立的檔案和目錄的存取權限,例如:

dav_access user:rw group:rw all:r;

如果指定了任何 groupall 存取權限,則可以省略 user 權限

dav_access group:rw all:r;

語法 dav_methods off | method ...;
預設
dav_methods off;
上下文 http, server, location

允許指定的 HTTP 和 WebDAV 方法。參數 off 會拒絕此模組處理的所有方法。支援以下方法:PUTDELETEMKCOLCOPYMOVE

使用 PUT 方法上傳的檔案會先寫入臨時檔案,然後重新命名該檔案。從 0.8.9 版開始,臨時檔案和永久儲存可以放在不同的檔案系統上。但是,請注意,在這種情況下,檔案會跨兩個檔案系統複製,而不是進行便宜的重新命名操作。因此,建議對於任何給定的位置,儲存的檔案和包含臨時檔案的目錄(由 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