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