Manière élégante de créer des miniatures d'images stockées sur S3 avec ec2 et communiquer avec des rails sur la finition?
OK, donc un rapide résumé de ma configuration et ce que je veux accomplir:
- J'ai un rails 2.3.5 serveur qui héberge mon site web. J'ai une application flash sur mon site où les utilisateurs peuvent télécharger les images directement à s3.
- Lorsqu'un téléchargement est terminé, les rails en est informé.
- À l'endroit où l'image est fini de télécharger les s3 et rails en est averti, je veux rails pour envoyer quelques post à quelque chose situé sur ec2 pour créer des vignettes (110x110 et 600x600).
- Lorsque les vignettes sont créées et transférées au s3, je veux quelque procédé que ce soit sur ec2 pour envoyer un message de retour à rails de signaler que la création de la miniature est terminé et sont sur s3.
Quelle est la meilleure façon d'accomplir cette? J'ai regardé des outils tels que couteau très brièvement, mais je ne suis pas familier avec l'utilisation d'ec2 ou services similaires.
Grâce
source d'informationauteur Zyren
Vous devez vous connecter pour publier un commentaire.
Le processus que je voudrais utiliser est la suivante:
Une fois l'image téléchargée sur S3, rails est notifié et il ajoute un message dans une File d'attente Amazon SQS (voir http://aws.amazon.com/sqs/)
Un processus d'arrière-plan en cours d'exécution sur EC2 vérifie la file d'attente et les processus de tous les messages, de générer les vignettes
Une fois une vignette générée, une notification est envoyée à l'aide d'Amazon SNS (voir http://aws.amazon.com/sns/) et votre application rails responsables de cette notification
pour ceux comme moi qui ont regardé cela, AWS propose désormais Lambda
Voici une soluce grande que les réponses à cette question parfaitement, La Manipulation Amazon S3 Événements. L'idée est d'avoir un node.js package Labmda - être notifiées sur S3 Seau événements (objet créé dans notre cas), obtenir le téléchargement de l'objet, de la redimensionner, puis enfin de les enregistrer dans un autre seau pour les vignettes. Étant donné que vous aurez une node.js app, vous pouvez pratiquement faire tout type de demandes à n'importe quel service que vous souhaitez après les vignettes ont été enregistrées.