Tengo una aplicación que carga archivos de usuario a S3. Por el momento, la ACL para las carpetas y archivos está configurada en privado.Sirviendo con seguridad los archivos de Amazon S3
He creado una tabla db (llamados documentos) que almacena la siguiente información:
id
user_id
file_name (original file as specified by the user)
hash_name (random hash used to save the file on amazon)
Así, cuando un usuario desea descargar un archivo, compruebe en primer lugar en la tabla db que tengan acceso a archivo. Preferiría no tener primero el archivo descargado en mi servidor y luego enviarlo al usuario; me gustaría que ellos puedan obtener el archivo directamente de Amazon.
¿Está bien confiar en un hashname muy largo (haciendo que sea básicamente imposible para cualquier persona adivinar aleatoriamente un nombre de archivo)? En este caso, puedo configurar la ACL para que cada archivo sea de lectura pública.
O, ¿hay otras opciones que pueda utilizar para servir los archivos y mantenerlos en privado?
Así que, básicamente, no hay manera de mantener la ACL privada y todavía sirven en Amazon? ¿Qué hay de cambiar temporalmente la ACL a la lectura pública, luego servirla desde S3, y luego cambiar la ACL a privada? – JonoB
Ver mi respuesta actualizada. Puede generar una URL pública de tiempo limitado sin abrir su ACL para el mundo. –
@EricJ.¿puedo saber cómo hacer que sea un usuario autenticado para ver imágenes? Si usted sabe, entonces puede responder esta pregunta http://stackoverflow.com/questions/40168221/laravel-secure-amazon-s3-bucket-files.Gracias – iCoders