2014-04-24 13 views
6

Dosya yüklemelerini işlemek için nginx'i kurmaya ve dosya bittiğinde dosya bilgilerini bir arka uç sunucusuna iletmeye çalışıyorum. Bunu nasıl yapılacağını gösteren https://coderwall.com/p/swgfvw adresindeki bir gönderiye rastladım ve/tmp dizinine yüklenen bir dosyayı görebiliyorum. Ancak, dosya adını ve arka uç sunucusuna (Content-Disposition ve Content-Type) tipini de yazmak istiyorum. nginx pass filetype to backend sunucusu

Ben
POST /upload HTTP/1.1 
User-Agent: curl/7.32.0 
Host: MyHostName 
Accept: */* 
Content-Length: 4431 
Expect: 100-continue 
Content-Type: multipart/form-data; boundary=------------------------6060af4f937c14c9 

--------------------------6060af4f937c14c9 
Content-Disposition: form-data; name="filedata"; filename="sessions.txt" 
Content-Type: text/plain 

verilerine ardından http sunucusu ağzında alınan ve aşağıya bakın ne yakalayan çalıştı. Yükleme için My nginx yeri bloktur

, ben geçmek ve benim arka uç aşağıdaki alabilecek duyuyorum Bununla

 location /upload { 
       limit_except POST  { deny all; } 

       client_body_temp_path   /tmp/; 
       client_body_in_file_only  on; 
       client_body_buffer_size   128K; 
       client_max_body_size   100M; 

       proxy_redirect     off; 
       proxy_set_header    X-FILE $request_body_file; 
       proxy_set_header    X-Forwared-For $proxy_add_x_forwarded_for; 
       proxy_set_header    Host $http_host; 
       proxy_set_header    X-NginX-Proxy true; 
       proxy_set_header    Connection ""; 
       proxy_pass_request_headers  on; 
       proxy_set_body     off; 
       proxy_http_version    1.1; 
       proxy_pass      http://my_backend; 
     } 

,

'content-type': 'multipart/form-data; boundary=------------------------6060af4f937c14c9' 
'x-file': '/tmp/0000000001' 

ama gerçekten istiyorum bilmek nasıl Arka uçuma

'u alabilirsiniz. Bununla ilgili herhangi bir yardım çok takdir edilmektedir.

P.S: Bu soru için bu soruyu sorun değil mi? (Superuser denedik ama çok aktiviteye sahip görünmüyor) başlığı gözardı ediliyor ise

proxy_pass_header Content-Disposition; 

deneyin veya doğrudan özel başlıklarında

proxy_set_header  Content-Disposition $http_content_disposition; 
+0

Bu konuda hiç şansınız oldu mu? Content-Disposition, dosyanın beklenen davranışının üstünde mi yer alıyor? Ve eğer öyleyse, daha sonra, dosyayı (görüntü) veya örneği görüntülemek için onları çıkarır mısınız? – Mike

+0

Aslında hayır, bu yaklaşımı şimdilik kullanmaya karar verdim, ancak dosyayı akışaşağı sunucusundaki ayrıştırma işleminin bunu elde etmenin bir yolu olacağını düşünüyorum (şansa sahip olduğumda muhtemelen böyle bir şeyi deneyeceğim). –

+0

Ben de herhangi biri ile herhangi bir şansın olduğunu merak ediyorum ... – stackular

cevap

0

nginx'te yok sayılır,

alt bölümlerinin üzerinde yer alabilen bir seçenek;

+0

İkisini de denedi ancak yine de arka uç sunucusunda Content-Dispostion alamadım :( –

0

alt çizgiler sessizce pass,