J'ai démarré un exemple d'application utilisant Amazon S3 pour l'hébergement d'images. J'ai réussi à l'amener à travailler. L'application est hébergée au github.com. L'application vous permet de créer des utilisateurs avec une photo de profil. Lorsque vous téléchargez la photo, l'application Web la stocke sur Amazon S3 au lieu de votre système de fichiers local. (Très important si vous hébergez à heroku.com)Comment rendre les images hébergées sur Amazon S3 moins publiques mais pas complètement privées?
Cependant, quand j'ai fait une "vue source" dans le navigateur de la page, j'ai remarqué que l'URL de l'image était une URL Amazon S3 dans le compartiment S3 que j'avais assigné l'application. J'ai coupé & collé l'URL et a été en mesure d'afficher l'image dans le même navigateur, et dans un autre navigateur dans lequel je n'avais pas de sessions ouvertes à mon application Web ou à Amazon S3.
Y a-t-il un moyen de restreindre l'accès à cette URL (et à cette image) afin qu'elle ne soit accessible qu'aux navigateurs connectés à mes applications?
La plupart des informations que j'ai trouvées sur les ACL Amazon ne traitent que de l'accès uniquement pour le propriétaire ou pour des groupes d'utilisateurs authentifiés avec Amazon ou AmazonS3, ou pour tout le monde de manière anonyme.
EDIT ---- Juillet à jour 7, 2010
Amazon a just announced plus des moyens pour limiter l'accès aux objets S3 et des seaux. Vous pouvez, entre autres, restreindre l'accès à un objet S3 en qualifiant le référent HTTP. Cela semble intéressant ... Je ne peux pas attendre jusqu'à ce qu'ils mettent à jour leurs documents de développement.
@Justice - Merci pour une réponse complète et très bien raisonnée. C'est exactement le raisonnement dont j'avais besoin pour utiliser S3. Les actifs stockés sur S3 ne sont pas super critiques en ce qui concerne la confidentialité, et les URL ne sont disponibles que pour les utilisateurs connectés. Je suppose que je dois faire une sorte de hash salé pour générer le nombre aléatoire. –
+1 pour les points logiques. Générer une nouvelle URL aléatoire pour chaque mise à jour de la ressource est également important. –