12

Je suis dans une situation où je dois pousser le stockage d'images pour un certain nombre de sites vers un service qui peut évoluer indéfiniment (S3, CloudFiles, etc.). Jusqu'à présent, nous avons été en mesure de permettre à nos utilisateurs de générer des tailles de vignettes personnalisées à la volée en utilisant la bibliothèque d'imagerie Python avec l'aide de sorl-thumbnail dans Django. En déplaçant nos images vers quelque chose comme S3, la capacité rapidement créer des vignettes à la volée est perdue. Nous pouvons soit:Mise à l'échelle des images stockées sur S3

  1. Faites-le lentement en téléchargeant la source de S3 et créer la vignette localement
    con: il est intensif lent et la bande passante
  2. Faites-avance en créant un ensemble prédéterminé de tailles miniatures (A'la Flickr) et en les poussant tout à S3
    con: il limite les dimensions qui peuvent être générés et stocke de nombreux fichiers qui ne seront jamais utilisés
  3. Laissez le redimensionnement du navigateur en utilisant la hauteur/largeur attributs sur l'img tag.
    con: bande passante supplémentaire utilisée en téléchargeant plus que les fichiers nécessaires

À ce stade, # 3 semble être une solution simple au problème avec quelques inconvénients. Quelques tests rapides et data from this website montrent que la qualité n'est pas aussi mauvaise que prévu (nous pouvons nous assurer que le rapport d'aspect est maintenu).

Des suggestions sur d'autres options ou inconvénients que nous pourrions ne pas prendre en considération?

note: Les images sont des photos numériques et sont uniquement utilisées pour l'affichage sur le Web. Les tailles varieraient de 1000 à 50 pixels en hauteur/largeur.

Répondre

6

Je recommande d'utiliser EC2 pour mettre à l'échelle les images sur demande. Comme la bande passante entre EC2 et S3 est libre et qu'elle devrait être rapide je pense que cela élimine tous les problèmes avec la solution # 1.

+0

Notre serveur est chez Slicehost et selon eux nous avons une connexion gratuite de 100mbps à CloudFiles. Oui, cela réprime mes craintes sur # 1. – Pete

+1

Combiné avec un cache pour quand une seule image est frappée par dire Digg, cela devrait fonctionner très bien. Je déteste penser à des milliers d'utilisateurs qui demandent que la même image soit encodée en JPEG à plusieurs reprises. –

Questions connexes