Quiero cargar archivos grandes en mi carpeta djangos MEDIA usando el módulo de carga nginx.
El punto final Django REST "POST" para la carga de un solo archivo está en
http://localhost:1337/api/record/medidas/#id/upload/
donde #id puede ser un número entero (1,2,3,4,5...), y funciona para django sin nginx.
Escribí la configuración de nginx
#/etc/nginx/conf.d/default.conf location @backend { proxy_pass http://django-app:8000; } location /api/record/measurements/1/upload/ { error_page 418 = @upload; if ($request_method = POST ) { return 418; } include /etc/nginx/mainloc.conf; } location @upload { upload_pass @backend; upload_store /vol/web/media/_upload 1; upload_store_access user:r; upload_set_form_field $upload_field_name.name "$upload_file_name"; upload_set_form_field $upload_field_name.content_type "$upload_content_type"; upload_set_form_field $upload_field_name.path "$upload_tmp_path"; upload_aggregate_form_field "$upload_field_name.md5" "$upload_file_md5"; upload_aggregate_form_field "$upload_field_name.size" "$upload_file_size"; upload_pass_form_field "^submit$|^description$"; upload_cleanup 400 404 499 500-505; } location / { include /etc/nginx/mainloc.conf; }con
#mainloc.conf proxy_pass http://django-app:8000; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off;Logré subir el archivo a /vol/web/media/_upload, pero después de completar la carga del archivo, recibo la respuesta
{ "id": 1, "data": null }y el archivo cargado no se mueve a la ubicación final MEDIA=/vol/web/media/ sino que permanece en upload_store