MISE À JOUR: Il semble que le problème principal avec les images ne se chargeant pas provienne de la façon dont le plugin / l'extension HTTPS Everywhere de l' EFF a géré certaines URL Tumblr. Le développeur a été informé et un correctif semble être en place . Cette réponse décompose essentiellement le travail de détective effectué pour découvrir le problème tel que décrit par la question initiale et pourrait s'avérer utile pour un débogage / diagnostic ultérieur si un problème similaire apparaît à l'avenir.
EDIT: Le plus grand contenu sur la sangsue d'image semble invalide. Donc, ajoutera une nouvelle idée en haut et laissera les informations de sangsue d'image en bas au cas où cela serait utile à quelqu'un.
Idées Amazon CloudFront CDN
D'accord, en utilisant les URL que vous avez fournies, ainsi que certaines de mes expériences réelles avec les configurations CDN d'Amazon CloudFront, je pense avoir découvert quelque chose. Il semble que la configuration Amazon CloudFront CDN de Tumblr s'étouffe pour une raison quelconque. Voici pourquoi je pense que c'est le cas.
Prenons cet exemple d'URL:
http://36.media.tumblr.com/d685b02fdf2d3f167c22d9a97e27e87a/tumblr_nfpq5qPZ4v1tognpro1_1280.png
Maintenant, exécutons curl -I
pour obtenir les informations d'en-tête sur ce fichier:
curl -I http://36.media.tumblr.com/d685b02fdf2d3f167c22d9a97e27e87a/tumblr_nfpq5qPZ4v1tognpro1_1280.png
La sortie pour cela serait quelque chose comme ceci:
HTTP/1.1 200 OK
Content-Type: image/png
Content-Length: 782141
Connection: keep-alive
Accept-Ranges: bytes
Cache-Control: max-age=1209600
Date: Thu, 05 Mar 2015 02:15:44 GMT
Server: nginx
X-Cache: Miss from cloudfront
Via: 1.1 7e54fc06cd70e4752fe050bbe5c130be.cloudfront.net (CloudFront)
X-Amz-Cf-Id: QyIUyzfaJJN3PU_xWkW0P-D2kjg_1cVenKzFAoY2PubgZQlBHWorZQ==
Maintenant, les choses à faire attention ici sont les en- têtes Date
(la date et l'heure du fichier sur le point de terminaison CloudFront) et X-Cache
(l'état de livraison du contenu Amazon). Le comportement typique sur Amazon CloudFront est que le premier accès transmettra un «Miss de cloudfront» et puis si vous en faites un autre curl -I
tout de suite après, il devrait y en avoir un Hit from cloudfront
.
Mais ce n'est pas ce que j'ai vu tout à l'heure. Voici une ventilation de Date
et le X-Cache
statut d'un tas d'accès que j'ai fait:
Date: Thu, 05 Mar 2015 02:19:37 GMT
= X-Cache: Miss from cloudfront
Date: Thu, 05 Mar 2015 02:19:39 GMT
= X-Cache: Miss from cloudfront
Date: Thu, 05 Mar 2015 02:19:44 GMT
= X-Cache: Miss from cloudfront
Date: Thu, 05 Mar 2015 02:19:50 GMT
= X-Cache: Miss from cloudfront
Date: Thu, 05 Mar 2015 02:19:50 GMT
= X-Cache: Hit from cloudfront
Date: Thu, 05 Mar 2015 02:19:50 GMT
= X-Cache: Hit from cloudfront
Date: Thu, 05 Mar 2015 02:19:50 GMT
= X-Cache: Hit from cloudfront
La raison pour laquelle il existe plusieurs éléments avec les mêmes données exactes qui sont Hit from cloudfront
proches de la fin est parce que c'est ce qui se produit sur un CDN: si le point de terminaison du CDN a le fichier, puis Date
correspond à la date de création / modification réelle du fichier qui point final a.
Vous remarquez que les quatre premiers accès sont distants de quelques secondes, avec des dates / heures différentes et tous le sont Miss from cloudfront
, non? Cela signifie que le point de terminaison CDN rappelle simplement qu'il y a eu une tentative d'accès à ce fichier à ces moments et que toutes les tentatives ont échoué.
Donc, mon évaluation en fauteuil roulant de cela est que les systèmes de Tumblr ne suivent pas le CDN d'Amazon CloudFront ou que le CDN d'Amazon CloudFront ne suit pas avec Tumblr. Mais d'une certaine manière, les choses ne vont pas du côté serveur. Et comme il s'agit d'un CDN, une personne accédant aux fichiers à un emplacement peut ne pas remarquer de problème tandis qu'une autre personne à un autre emplacement aurait des problèmes pour visualiser l'image.
Tout cela pour dire que je ne pense pas que cela puisse être facilement réglé du côté client.
EDIT: Donc, l'affiche originale a ajouté de nouvelles URL, et cela pointe toujours vers un problème côté serveur, mais je voulais juste publier les détails pour l'enregistrement.
Idées CDN EdgeCast et Highwinds
Donc, l'affiche originale a ajouté plus de détails, alors voici plus de détails basés sur le blog qui est utilisé comme exemple:
http://claystorks.tumblr.com/post/112741831192/soulmister-claystorks-windspeare-explain
Et ces URL d'image sont fournies à titre d'exemples d'URL dans cette publication:
https://gs1.wac.edgecastcdn.net/8019B6/data.tumblr.com/76493f424ebb3b62d6de43e53643180a/tumblr_nkps82DdCh1sjn35qo1_500.png
https://gs1.wac.edgecastcdn.net/8019B6/data.tumblr.com/76493f424ebb3b62d6de43e53643180a/tumblr_nkps82DdCh1sjn35qo1_1280.png
Et ces deux URL d'images échouent en effet. Mais de mon côté - en regardant le code source d'origine du billet de blog de Brooklyn, New York, USA - je ne vois pas ces gs1.wac.edgecastcdn.net
URL EdgeCast ( ). Ce sont plutôt les URL que je vois:
http://41.media.tumblr.com/76493f424ebb3b62d6de43e53643180a/tumblr_nkps82DdCh1sjn35qo1_500.png
http://41.media.tumblr.com/76493f424ebb3b62d6de43e53643180a/tumblr_nkps82DdCh1sjn35qo1_1280.png
Donc, ma première pensée est pourquoi l'affiche originale voit-elle ces EdgeCast ( gs1.wac.edgecastcdn.net
). Mais alors si je fais un traceroute vers le 41.media.tumblr.com
je vois que c'est un serveur géré par Highwinds (!?!?). En revanche, les URL initiales transmises par l'utilisateur d'origine utilisent le 36.media.tumblr.com
nom d'hôte et vous pouvez voir qu'elles sont gérées par les serveurs CDN Amazon CloudFront.
Tout cela pour dire - ce que j'ai dit auparavant - tout cela semble être un problème côté serveur avec Tumblr et leur gestion CDN. Mais de mon côté - à Brooklyn, New York, États-Unis - je vois clairement que le contenu est livré comme prévu à partir des serveurs CDN Highwinds ainsi que des serveurs CDN Amazon CloudFront. L'origine de ces URL EdgeCast ou comment / pourquoi elles échouent est hors du contrôle de quiconque du côté client. Ce serait certainement quelque chose pour contacter le personnel technique de Tumblr car il n'y a aucun moyen pour un utilisateur final de bureau de résoudre ce problème.
Idées de sangsue d'image
Peut-être plus pertinent, mais ici pour référence.
Vous déclarez cela me donne un indice:
L'utilisation wget
des liens directs des images fonctionne.
De nombreux sites ont mis en place des règles, généralement définies via Apache, qui empêchent les sangsues d'images. Plus de détails sur le fonctionnement de ces règles sont fournis ici et sont résumés comme suit:
En utilisant .htaccess, vous pouvez interdire les liaisons à chaud sur votre serveur, de sorte que ceux qui tentent de créer un lien vers une image ou un fichier CSS sur votre site, par exemple, soit soit bloqués (demande échouée, telle qu'une image cassée), soit diffusés un contenu différent ( ex: une image d'un homme en colère).
D'après votre description - et le fait que vous puissiez accéder aux images via wget
- me fait croire que les images avec lesquelles vous rencontrez des problèmes ne sont pas hébergées sur Tumblr par les utilisateurs, mais plutôt des images qui sont placées sur un blog Tumblr mais réellement hébergées sur un autre site.
Lorsque des procédures de sangsue d'image standard sont mises en place, l'affichage d'une image incorporée sur un site qui est hébergé sur un autre site - ce qui bloque la sangsue - entraînerait un lien d'image cassé ou peut-être un «Stop Leeching!» image retournée. Cela est dû au fait que les règles de base anti-sangsue, telles que celles de cette page d'exemple, vérifient les référents d'image pour s'assurer que la page demandant l'image correspond au domaine hébergeant l'image.
Ainsi, lorsque vous accédez à l'image via, wget
vous accédez directement à l'image. Ainsi, les règles de sangsue d'image ne se déclencheraient pas. Ainsi, vous pouvez obtenir l'image via wget
mais pas lorsqu'elle est intégrée dans une autre page.