Ich versuche, nginx für Datei-Uploads einzurichten und die Dateiinformationen an einen Backend-Server weiterzugeben, sobald dies erledigt ist. Ich bin auf einen Post bei https://coderwall.com/p/swgfvw gestoßen, der zeigt, wie man das macht, und ich kann sehen, dass eine Datei in das Verzeichnis/tmp hochgeladen wird. Allerdings möchte ich auch den Dateinamen und -typ (Content-Disposition und Content-Type) an den Backend-Server weitergeben.nginx Datei-Typ an Backend-Server übergeben
Ich habe versucht, die Erfassung, was am HTTP-Server-Port und sehen Sie die unten
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
gefolgt von den Daten empfangen wird.
Mein nginx Standort Block für den Upload ist,
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;
}
Damit ich in der Lage bin weiterzugeben und die folgende an meinem Backend zu erhalten,
'content-type': 'multipart/form-data; boundary=------------------------6060af4f937c14c9'
'x-file': '/tmp/0000000001'
aber würde wirklich gerne wissen, wie ich kann die
Content-Disposition: form-data; name="filedata"; filename="sessions.txt"
Content-Type: text/plain
zu meinem Backend bekommen. Jede Hilfe mit diesem wird sehr geschätzt.
P.S: hoffe es ist ok für diese Frage hier? (Versuchte Superuser aber es scheint nicht viel Aktivität zu haben)
Hattest du jemals etwas Glück dabei? Befinden sich die Content-Dispo-Header am Anfang der Datei mit dem erwarteten Verhalten? Und wenn ja, entfernst du sie später aus, um die Datei (Bild) oder die Instanz anzuzeigen? – Mike
Eigentlich nein, ich entschied mich gegen diesen Ansatz für jetzt aber denke, Parsing die Datei auf dem Upstream-Server wäre eine Möglichkeit, um dies zum Funktionieren zu bringen (wird wahrscheinlich so etwas versuchen, wenn ich die Chance bekomme). –
Ich frage mich auch, ob jemand etwas Glück dabei hatte ... – stackular