curl上传文件方法


nginx反向代理可以下载,也可以上传,今天试试上传文件的方法

  • curl上传参数 -T

 

编译安装nginx,添加模块--with-http_dav_module模块

 

创建上传文件的临时目录

mkdir -p /dev/shm/client_body_temp
chown -R nginx.nginx /dev/shm/client_body_temp

mkdir -p /var/bh/bak/tfiles/
/var/bh/bak/tfiles/

 

添加nginx location配置

    location /tfiles/ {
    	# 刚刚创建的临时目录
        client_body_temp_path /dev/shm/client_body_temp 1 2;   
        # 文件的上传目录,nginx服务用户要有写的权限
        alias /var/bh/bak/tfiles/;
        autoindex on;
        # 默认是关闭PUT功能的,添加这行开启
        dav_methods PUT;
    }

 

重启nginx,在客户端测试

curl -T upload_file http://myserver.com/tfiles/

 

可以看到服务端目录/dev/shm/client_body_temp在不断的增涨,待文件上传完成后,会移到上传目录

 

FAQ1:

上传时发生报错:

<head><title>413 Request Entity Too Large</title></head>

需要给nginx加大缓存包体

    proxy_headers_hash_max_size 51200;
    proxy_headers_hash_bucket_size 6400;
    client_max_body_size 20m;

proxy_buffer_size 10240k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 16 10240k; #proxy_buffers缓冲区,网页平均在32k以下的设置
proxy_busy_buffers_size 20480k; #高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 20480k;#设定缓存文件夹大小,大于这个值,将从upstream服务器传

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM