2009-09-25 14 views
1

L'un des services Amazon (leur service de données S3, ou autre) peut-il être utilisé pour décharger le serveur de fichiers statiques d'une application Ruby on Rails, tout en prenant en charge l'authentification & de l'application? Ainsi, lorsque le navigateur de l'utilisateur a téléchargé le code HTML initial d'une page de l'application Ruby on Rails, lorsqu'il retournait du contenu statique (par exemple une image ou un fichier CSS), cette requête était: (a) acheminé directement au service Amazon (aucun cycle RoR utilisé pour le desservir, ou bande passante), MAIS (b) la demande de navigateur pour cet élément (par exemple une image) devrait encore passer par une couche d'authentification/autorisation basée sur le modèle de l'utilisateur dans l'application Ruby on Rails - en d'autres termes pour assurer non seulement quelqu'un pourrait obtenir l'image ...Amazon peut-il être utilisé pour décharger le serveur de fichiers statiques pour une application Ruby on Rails, tout en prenant en charge l'authentification et l'autorisation de l'application?

grâce

Répondre

3

la réponse est vous s avec un mais. Vous pouvez utiliser une fonctionnalité de S3 qui vous permet de créer des liens pour sécuriser des objets S3 qui ont peu de temps à vivre, la valeur par défaut est de 5 minutes. Cela fonctionnera pour tout objet S3 téléchargé comme privé. Cela signifie que le navigateur n'aura que X secondes ou autre pour demander le fichier à partir de S3. Exemple de code de docs pour la gemme AWS:

S3Object.url_for('beluga_baby.jpg', 'marcel_molina') 

Vous pouvez également spécifier un expires_in ou expire l'option par fichier. La mauvaise chose est que vous auriez besoin de créer une aide pour vos liens de feuille de style, image, et js pour créer les bonnes URLs S3. Je vous recommande de configurer un nom de domaine pour votre seau S3, comme "examples3.amazonaws.com" et de mettre tous vos fichiers image standard et CSS là-bas en tant que public. Ensuite, définissez-le comme l'hôte d'actif dans vos rails de configuration. Ensuite, utilisez uniquement les liens sécurisés pour les fichiers statiques qui en ont vraiment besoin.