2010-10-13 20 views
2

Actuellement, je cherche à déplacer mes images de sites Web vers un service de stockage. J'ai deux sites Web développés en PHP et ASP.NET. En utilisant le service Amazon S3, nous pouvons héberger toutes nos images et vidéos pour servir des pages Web. Mais il y a quelques limitations en utilisant le service S3 lorsque nous voulons servir des images.Stockage d'images et CDN pour sites Web

  1. Si le site Web a besoin de différentes images miniatures avec différentes tailles de l'image originale, c'est difficile. Nous devons également nous abonner à EC2 également. Bien que le transfert de données de S3 à EC2 est libre, il faut du temps pour le transfert de données avant de traiter l'opération de redimensionnement de l'image.
  2. Le téléchargement du nombre de fichiers au format zip et la décompression dans S3 ne permettent pas de réduire le nombre de téléchargements.
  3. Le téléchargement de plusieurs fichiers à partir de S3 n'est pas possible si nous voulons passer à un autre fournisseur.
  4. Les noms d'image sont sensibles à la casse dans S3. Qui ne chargera pas les images si le nom de l'image ne correspond pas à la requête.

Parmi toutes ces premières, il est très important que le redimensionnement de l'image soit une exigence générale.

Quel fournisseur est le mieux adapté pour atteindre mon objectif. Puis-je passer à Google App Engine uniquement dans le but d'héberger des images ou y a-t-il un autre fournisseur pouvant fournir les services ci-dessus?

+0

Combien d'images avez-vous? Quelle est leur taille (moyenne, max)? – iddqd

Répondre

-1

Si vous utilisez EC2, alors S3 est votre meilleure option. La "meilleure pratique" consiste simplement à pré-rendre l'image dans toutes les tailles et à la télécharger avec des noms différents. I.e. .:

/images/image_a123.large.jpg 
/images/image_a123.med.jpg 
/images/image_a123.thumb.jpg 

Cette pratique est utilisée par Digg, Twitter (une fois, peut-être pas twimg ...), et une foule d'autres entreprises.

Ce n'est peut-être pas idéal, mais c'est la façon la plus rapide et la plus simple de le faire. En ce qui concerne le passage à un autre fournisseur, vous ne le ferez probablement pas en raison de la quantité de travail nécessaire pour transférer tous les fichiers de toute façon. Si vous avez 1 000 000 images ou 3 000 000 d'images, vous avez encore plusieurs mégaoctets de fichiers.

Heureusement, S3 dispose d'un service d'import/export. Vous pouvez leur envoyer un disque dur vide et ils vont le formater et télécharger vos données pour une somme modique.

En ce qui concerne votre souci de la sensibilité à la casse, vous ne trouverez pas un fournisseur qui ne possède pas la sensibilité à la casse . Si votre code est écrit correctement, vous allez normaliser tous les noms en majuscules ou en minuscules, ou utiliser une sorte de système d'identification de base 64 qui prend soin de l'affaire pour vous. Dans l'ensemble, S3 va vous donner le meilleur «coup pour votre argent», et il a la prise en charge CloudFront si vous voulez l'accélérer. Pas en utilisant S3 pour des raisons 3 et 4 est un non-sens, car ils s'appliqueront probablement partout où vous allez.

0

S3 est vraiment lent et non distribué. Cloudfront en comparaison est également l'un des CDN les plus lents et les plus chers que vous pouvez obtenir. Le seul avantage est que si vous utilisez déjà d'autres AWS, vous recevrez une facture.

Je blogué sur différents et CDNs couru quelques tests: http://till.klampaeckel.de/blog/archives/100-Shopping-for-a-CDN.html

En ce qui concerne la configuration, je proposerais quelque chose qui utilise l'origine-pull. Donc, vous hébergez vous-même les images et le CDN en demande une copie la première fois qu'il vous est demandé. Cela signifie également que vous pouvez utiliser un script pour générer "dynamiquement" les images car elles ne seront tirées qu'une fois. Il suffit de définir les en-têtes de cache appropriés. Les images seraient alors mises en cache jusqu'à ce que vous purgiez le cache du CDN.

HTH

0

Je viens à travers CloudFlare - ce que je comprends de leur site, vous ne devriez pas avoir à apporter des modifications à votre site Web. Apparemment, tout ce que vous devez faire est de changer vos paramètres DNS. Même fournit une option gratuite.

2

Je suis tombé sur une belle entreprise appelée Cloudinary qui fournit un service de stockage d'images CDN - ils fournissent également une variété de façons qui permettent la manipulation d'image à la volée (le recadrage vous concernera principalement car nous parlons de tailles différentes vignettes). Je ne suis pas sûr comment ils rivalisent avec d'autres entreprises comme maxcdn dans l'amélioration de la vitesse du site, mais d'après ce que je peux voir - ils ont plus d'options quand il s'agit de la manipulation de l'image.

+0

Une autre société offrant des fonctionnalités similaires: https://Uploadcare.com –