2 votes

Redimensionnement, rognage et mise en cache d'images en temps réel - Produit serveur

Je suis en train d'enquêter sur les produits disponibles qui permettent de demander des images via une API HTTP dans des tailles d'images arbitraires. Le serveur serait derrière un CDN mais devrait toujours être capable de gérer un bon volume de trafic et être éventuellement équilibré chargement.

On m'a chargé d'écrire un tel service, mais je voulais faire preuve de diligence raisonnable pour voir quelles solutions commerciales ou open source existent. Google n'a pas été particulièrement utile. Cela peut être parce que j'ai recherché le terme incorrect.

Les sites et services tiers sont exclus en raison des politiques d'entreprise.

2voto

Tieme Points 101

Vous pouvez utiliser ImageMagick avec php/perl/python. Cela vous permettra de redimensionner l'image. Le seul piège ici est que vous voulez mettre en cache l'image, idéalement.

Pour rendre l'image mise en cache plus conviviale, vous devrez rediriger vers une URL unique et garder l'état de chaque appel pour la redirection.

exemple.

http://example.com/resize/image.php?image=example.jpg&width=640&height=320 qui redimensionne example.jpg. Pour que cela puisse être mis en cache, image.php doit renvoyer une redirection d'URL. http://example.com/resize/static/example640x320.jpg

Pour la deuxième URL, assurez-vous d'avoir les bons en-têtes d'expiration définis pour que le CDN puisse le mettre en cache. Mais vous devez également maintenir la correspondance de
http://example.com/resize/image.php?image=example.jpg&width=640&height=320 vers http://example.com/resize/static/example640x320.jpg
parce qu'à chaque demande d'image, le script image.php sera appelé.
Pour la synchronisation des données dans un scénario équilibré, vous disposez d'un partage nfs ou utilisez rsync si un délai de quelques secondes est acceptable ou utilisez le téléchargement de fichiers via API (bien sûr sécurisé) pour synchroniser les données entre les serveurs backend.

1voto

Amy Anuszewski Points 1228

Par tailles, entendez-vous les tailles de fichiers ou la hauteur/largeur des images?

Ils ne permettent pas nécessairement des tailles "arbitraires", mais les mandataires réduisant la bande passante (alias "accélérateurs") recompressent les fichiers image pour les réduire, parmi d'autres astuces d'économie de bande passante. Wikipedia a une page à leur sujet avec une liste d'options.

Si vous voulez redimensionner les images à la volée, c'est essentiellement ce qu'un script de vignettes fait. Beaucoup d'entre eux sont exécutés à l'avance, mais il y en a d'autres qui le font "à la volée". Par exemple, le module Imager de CPAN contient un script CGI d'exemple qui met à l'échelle une image téléchargée à 200x200.

0voto

J'ai trouvé un module Apache open-source appelé mod_dims. Il répond à la plupart de mes besoins et il est assez rapide.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X