Estoy escribiendo una aplicación Django en la que los usuarios pueden subir imágenes, y no estoy seguro de cómo atenderlas. Puedo ver dos formas:¿Cómo se sirven los archivos cargados por el usuario en Django?
1- subirlos como archivos estáticos: cárgalos en la carpeta static
en el directorio de mi proyecto, y luego ejecuta python manage.py collectstatic
, pero no sé cómo ejecutar este comando automáticamente cada vez que un archivo se carga, y esto parece ser un montón de procesamiento porque cada vez que el servidor eliminará y volverá a cargar todo en mi aplicación estática.
2- uso django.views.static.serve
en mi urls.py:
url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {
'document_root': settings.MEDIA_ROOT,
}),
pero the doc no lo recomienda para la producción.
¿Cuál es la forma recomendada de enviar archivos cargados por el usuario?
Creo que es una buena idea para servir a esos archivos a través del servidor web Apache o una similar. Si necesita más control como permisos de usuario, mod_xsendfile podría ser una opción. – Jingo