2012-02-13 13 views

Respuesta

6

Consideraría almacenar los archivos con algún tipo de formato de carpeta, ya que muchos clientes basados ​​en UI S3 funcionarán mucho mejor si no hay 200,000 archivos en una carpeta. Además, no estaría de más añadir la extensión y el tipo de mime correctos a los archivos cargados. De esa manera, si decides servirles directamente desde S3 a una página web, etc., estarán listos para funcionar.

2012/2/6gtbb88uytgfrses4.png

También se podría poner las dimensiones en el nombre ...

2012/2/6gtbb88uytgfrses4_600x800_.png

+1

buen punto acerca de que los clientes S3 no funcionan bien con una gran cantidad de archivos en un único directorio. Subdividir en diferentes directorios parece ser el camino a seguir. –

+0

cómo dejar que s3 te permita generar dinámicamente nuevos directorios al cargarlos? No puedo encontrar la política de cubos para esto. – jedierikb

+0

No hay directorios en realidad, por lo que simplemente establece el nombre del archivo en la carga para que sea la ruta completa. –

4

Desde el punto de vista de la exclusividad, debe estar seguro. No es probable que se produzcan colisiones (aunque es posible) cuando se usa MD5.

Pero, si desea proporcionar a los usuarios la descarga de estos archivos, supongo que está almacenando los nombres de los archivos originales en otra parte (base de datos o similar). ¿Está bien? Si eso es correcto, es mejor que almacene el ID de sesión y la marca de tiempo en el mismo lugar, y siga adelante con un GUID para el nombre del archivo (en lugar de proporcionarlos a su función hash MD5), que sería más seguro de una colisión punto de vista.

+0

Usted no recibirá una colisión con MD5. –

+0

@TomAndersen realmente? Yo no estaría tan seguro No es probable, y no creo que la mayoría de las aplicaciones prácticas de MD5 estén amenazadas por colisiones, pero sí es posible. – Viccari

+0

Es solo posible para una situación de ataque, incluso entonces es difícil. El tamaño del espacio hash no es algo que pueda imaginarse. –

Cuestiones relacionadas