Estou tentando configurar o nginx para suportar uploads de arquivos. Estou usando o método descrito aqui . Meu nginx.conf
se parece com:
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 20G;
return 201 $request_body_file;
}
A idéia aqui é que, ao ativar client_body_in_file_only
, cada solicitação é salva diretamente no disco. Além disso, o nome do arquivo para o qual foi salvo é retornado ao cliente.
Eu posso fazer upload de arquivos com cURL e ver que eles estão sendo transferidos na íntegra:
$ curl -i -F "[email protected]" http://server/upload > out.txt
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 3053k 0 0 100 3053k 0 7874k --:--:-- --:--:-- --:--:-- 7889k
O arquivo tem 3 MB e, com certeza, foram transferidos 3 MB. A resposta é:
$ cat out.txt
HTTP/1.1 100 Continue
HTTP/1.1 201 Created
Server: nginx/1.13.4
Date: Tue, 22 Aug 2017 04:21:48 GMT
Content-Type: text/plain
Content-Length: 0
Connection: keep-alive
Observe que não recebi um nome de arquivo no corpo da resposta. Então no servidor não há nada abaixo de /tmp/
. Para onde foi o arquivo enviado?