use*_*890 5 post nginx http-post
有没有一种方法可以使用nginx通过http将文件上传到服务器?
我有一个程序,该程序基本上使用curl和通过HTTP的POST方法将文件发送到完全不同的企业软件。我们希望复制类似的内容,但遇到障碍。
我已经安装了nginx并进行了基本配置,我希望能够上传/ data / files / incoming下的文件
server {
listen testserv1;
location /upload/ {
limit_except POST PUT { deny all; }
client_body_temp_path /data/files/incoming/;
client_body_in_file_only on;
client_body_buffer_size 128k;
client_max_body_size 100M;
proxy_pass_request_headers on;
proxy_set_body $request_body_file;
proxy_pass http://127.0.0.1/upload;
proxy_redirect off;
}
Run Code Online (Sandbox Code Playgroud)
我基本上在nginx.conf上保留了常规配置,并添加了上面的内容。所以我的问题是,我怎么知道实际上在工作?我在另一台服务器上尝试运行程序,该程序据说可以发布文件,但什么也没有。有没有办法从另一个系统测试此配置?我在配置上缺少什么吗?
任何帮助,任何事情都将不胜感激。
您可以通过在 URL 中指定文件名来完成此操作,而无需使用任何外部模块。我在没有代理的情况下进行了测试,但它应该能够工作:
server {
listen testserv1;
location ~ "/upload/([0-9a-zA-Z-.]*)$" {
dav_methods PUT DELETE MKCOL COPY MOVE;
client_body_temp_path /tmp/incoming;
alias /data/files/incoming/$1;
create_full_put_path on;
dav_access group:rw all:r;
client_body_in_file_only on;
client_body_buffer_size 128k;
client_max_body_size 100M;
proxy_pass_request_headers on;
proxy_set_body $request_body_file;
proxy_pass http://127.0.0.1/upload;
proxy_redirect off;
}
}
Run Code Online (Sandbox Code Playgroud)
并使用:curl -T test.zip http://testserv1/upload/text.zip
| 归档时间: |
|
| 查看次数: |
4289 次 |
| 最近记录: |