Estoy creando una aplicación web (en Django), que debe permitir a los usuarios cargar archivos (específicamente imágenes, que luego se mostrarán para otros usuarios). Estoy tratando de entender la mejor manera de almacenar estos archivos cargados.La mejor manera de almacenar archivos cargados por el usuario en una aplicación web
De las preguntas relacionadas, vi que algunas personas sugirieron darle al archivo un ID único generado por el servidor y luego crear una tabla de base de datos que asigna los identificadores a los nombres de archivo originales.
¿Es este el mejor método para almacenar archivos cargados por el usuario, desde una seguridad, eficiencia o desde cualquier otro punto de vista? ¿Qué tipo de información debo guardar sobre cada archivo?
¿Existen otras prácticas recomendadas relacionadas con la aceptación de archivos cargados por el usuario? (Además de asegurarse de que realmente sean imágenes y verificar su tamaño, obviamente)?
Editar: Un poco más de información acerca de lo que necesito. Hablo específicamente de los archivos de imagen que los usuarios deben cargar e incrustar en el contenido que crean. Imagínenlo como una respuesta de StackOverflow (o una publicación de blog): alguien carga una imagen, que debe almacenarse y mostrarse cada vez que alguien más vea la respuesta.
Gracias,
Edan
Nota: Hay varias preguntas relacionadas, pero no he encontrado uno que pide una comparación de las formas de almacenar los archivos subidos por los usuarios.
hola edan, he llegado al mismo problema. Voy a crear una aplicación donde los usuarios pueden subir imágenes/pdfs. Luego pueden ver/descargar archivos. Estoy pensando en el almacenamiento del sistema de archivos. ¿Solo quieres saber de qué manera prefieres tu experiencia? –
La dirección que planeo seguir es: 1. Una base de datos para contener información "meta" (nombre original del archivo, etc.). 2. Archivos físicos en el sistema de archivos, con un nombre que es el índice en el db de la metainformación. Puede haber más de un archivo físico para cada entrada de db, por cierto, que corresponde a diferentes resoluciones, por ejemplo. Por ejemplo, tendré archivos: 254_high_res.jpg, 254_los_res.jpg, donde 254 es el índice en la base de datos de la metainformación para el archivo 254. –
gracias edan. Voy a almacenar imágenes con los nombres generados por radon guid como nombre de archivo. y para una resolución diferente, voy a usar el controlador. http://dotnetslackers.com/articles/aspnet/Generating-Image-Thumbnails-in-ASP-NET.aspx –