Nginx 简单 PUT 文件

Nginx 简单 PUT 文件

我已设置以下配置:

 location /upl {
       root /storage/www/upl/data;
       client_body_temp_path   /storage/www/upl/client_tmp;

       dav_methods  PUT DELETE MKCOL COPY MOVE;

       create_full_put_path   on;
       dav_access             group:rw  all:r;
  }

我使用以下命令上传文件:curl -T test.txthttp://x.xx.xx.xx:8080/upl

我的所有文件都位于数据文件夹中,但所有文件都具有相同的名称“upl”,并且与位置相同?!为什么 :S

请帮忙

BR,

答案1

您可以通过在 URL 中指定文件名来实现此目的,而无需使用任何外部模块:

location ~ "/upl/([0-9a-zA-Z-.]*)$" {
        alias     /storage/www/upl/$1;
        client_body_temp_path  /tmp/upl_tmp;
        dav_methods  PUT DELETE MKCOL COPY MOVE;
        create_full_put_path   on;
        dav_access             group:rw  all:r;
}

并使用:curl -T test.txthttp://x.xx.xx.xx:8080/upl/text.txt

答案2

根据维基百科,Nginx 具有非常有限的可选 WebDAV 模块和第三方模块,ngx_http_dav_模块

支持的服务器和客户端

https://en.wikipedia.org/wiki/WebDAV

相关内容