J'ai une application qui télécharge les fichiers des utilisateurs vers S3. Pour l'instant, la liste de contrôle d'accès des dossiers et des fichiers est définie comme privée.
J'ai créé une table de base de données (appelée docs) qui stocke les informations suivantes :
id
user_id
file_name (original file as specified by the user)
hash_name (random hash used to save the file on amazon)
Ainsi, lorsqu'un utilisateur veut télécharger un fichier, je vérifie d'abord dans la table de la base de données qu'il a accès au fichier. Je préférerais que le fichier ne soit pas d'abord téléchargé sur mon serveur puis envoyé à l'utilisateur - je voudrais qu'il puisse récupérer le fichier directement sur Amazon.
Est-il possible de s'appuyer sur un hashname très très long (rendant pratiquement impossible à quiconque de deviner un nom de fichier au hasard) ? Dans ce cas, je peux définir l'ACL de chaque fichier sur public-read.
Ou bien, existe-t-il d'autres options que je peux utiliser pour servir les fichiers tout en les gardant privés ?