ATUALIZAÇÃO: Parece que o principal problema com as imagens não carregadas decorreu da maneira como o plug-in / extensão HTTPS Everywhere da EFF lidou com alguns URLs do Tumblr. O desenvolvedor foi notificado e uma correção parece estar em vigor . Essa resposta basicamente divide o trabalho de detetive feito para descobrir o problema, conforme descrito na pergunta inicial, e pode ser útil para depuração / diagnóstico adicional, se um problema semelhante aparecer no futuro.
EDIT: O conteúdo maior sobre leeching de imagem parece inválido. Então, adicione uma nova idéia na parte superior e deixe as informações sobre a imagem na parte inferior, caso seja útil para alguém.
Ideias do CDN do Amazon CloudFront
Tudo bem, usando os URLs que você forneceu - assim como parte da minha experiência no mundo real com as configurações do Amazon CloudFront CDN - acho que descobri algo. Parece que a configuração da Amazon CloudFront CDN do Tumblr está sufocando por algum motivo. Eis por que acho que é esse o caso.
Vamos pegar este URL de exemplo:
http://36.media.tumblr.com/d685b02fdf2d3f167c22d9a97e27e87a/tumblr_nfpq5qPZ4v1tognpro1_1280.png
Agora vamos correr curl -I
para obter informações de cabeçalho nesse arquivo:
curl -I http://36.media.tumblr.com/d685b02fdf2d3f167c22d9a97e27e87a/tumblr_nfpq5qPZ4v1tognpro1_1280.png
A saída para isso seria algo como isto:
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==
Agora, o que deve ser observado aqui são os cabeçalhos Date
(a data e a hora do arquivo no terminal do CloudFront) e X-Cache
(status de entrega de conteúdo da Amazon). O comportamento típico no Amazon CloudFront é o primeiro acesso que transmite uma "falha do cloudfront" e, se você fizer outro curl -I
imediatamente depois, deve haver um Hit from cloudfront
.
Mas não foi o que vi agora. Aqui está um detalhamento do Date
e X-Cache
status de vários acessos que fiz:
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
A razão pela qual existem vários itens com os mesmos dados exatos que estão Hit from cloudfront
próximos do fim é porque é o que acontece em uma CDN: se o ponto final da CDN tiver o arquivo, ele se Date
correlacionará com a data real de criação / modificação do arquivo que ponto final possui.
Você percebe que os quatro primeiros acessos estão separados por segundos, com datas / horas diferentes e todos eles Miss from cloudfront
, certo? Isso significa que o terminal da CDN está apenas lembrando que houve uma tentativa de acessar esse arquivo naquele momento e todas as tentativas foram perdidas.
Portanto, minha avaliação da poltrona é que os sistemas do Tumblr não estão acompanhando o Amazon CloudFront CDN ou o Amazon CloudFront CDN não está acompanhando o Tumblr. Mas, de alguma forma, as coisas estão erradas no lado do servidor. E, como se trata de uma CDN, alguém que acessa os arquivos em um local pode não perceber um problema, enquanto alguém em outro local tem problemas para visualizar a imagem.
O que é tudo a dizer, eu não acho que isso possa ser facilmente esclarecido no lado do cliente.
EDIT: Então, o pôster original adicionou alguns novos URLs, e isso ainda aponta para um problema no servidor, mas eu só queria postar os detalhes para o registro.
EdgeCast & Highwinds CDN Ideas
Portanto, o pôster original adicionou mais detalhes. Aqui estão mais detalhes com base na postagem do blog que está sendo usada como exemplo:
http://claystorks.tumblr.com/post/112741831192/soulmister-claystorks-windspeare-explain
E esses URLs de imagem são fornecidos como exemplos de URLs nessa postagem:
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
E esses dois URLs de imagem realmente falham. Mas do meu lado - olhando para o código de soure original da postagem do blog de Brooklyn, Nova York, EUA - não estou vendo esses gs1.wac.edgecastcdn.net
URLs do EdgeCast ( ). Em vez disso, esses são os URLs que estou vendo:
http://41.media.tumblr.com/76493f424ebb3b62d6de43e53643180a/tumblr_nkps82DdCh1sjn35qo1_500.png
http://41.media.tumblr.com/76493f424ebb3b62d6de43e53643180a/tumblr_nkps82DdCh1sjn35qo1_1280.png
Então, meu primeiro pensamento é por que o pôster original está vendo aqueles EdgeCast ( gs1.wac.edgecastcdn.net
). Mas se eu fizer um traceroute para o 41.media.tumblr.com
que vejo, é um servidor gerenciado pelo Highwinds (!?!?). Por outro lado, os URLs iniciais transmitidos pelo usuário original estão usando o 36.media.tumblr.com
nome do host e você pode ver que eles são gerenciados pelos servidores Amazon CloudFront CDN.
O que é tudo a dizer - o que eu disse antes - tudo isso parece ser um problema do lado do servidor no Tumblr e no gerenciamento da CDN. Mas, do meu lado - no Brooklyn, Nova York, EUA -, vejo claramente o conteúdo sendo entregue conforme o esperado dos servidores Highwinds CDN e dos servidores Amazon CloudFront CDN. A origem desses URLs do EdgeCast ou como / por que eles estão falhando está fora do controle de qualquer pessoa no lado do cliente. Definitivamente, seria algo para entrar em contato com a equipe técnica do Tumblr, porque não há como um usuário final de desktop resolver isso.
Idéias de sanguessuga de imagem
Pode não ser mais relevante, mas aqui para referência.
Você afirmando isso me dá uma pista:
O uso wget
dos links diretos das imagens funciona.
Muitos sites têm regras em vigor - geralmente definidas via Apache - que impedem a ocorrência de imagens. Mais detalhes sobre como essas regras funcionam são fornecidos aqui e são resumidos da seguinte forma:
Usando .htaccess, você pode proibir a vinculação a quente no servidor, para que as tentativas de vincular a uma imagem ou arquivo CSS em seu site, por exemplo, sejam bloqueadas (falha na solicitação, como uma imagem quebrada) ou exibam um conteúdo diferente ( ou seja: a imagem de um homem revoltado).
Com base na sua descrição - e no fato de que você pode acessar as imagens via wget
- me leva a acreditar que as imagens com as quais você está tendo problemas não são hospedadas no Tumblr pelos usuários, mas sim imagens que são colocadas em um blog do Tumblr, mas na verdade hospedadas em outro local.
Quando os procedimentos padrão de sanguessuga de imagem são implementados, a visualização de uma imagem incorporada em um site hospedado em outro site - que bloqueia a sanguessuga - resultaria em um link de imagem quebrado ou talvez em um "Stop Leeching!" imagem sendo retornada. Isso ocorre porque regras básicas anti-sanguessuga - como as da página de exemplo - fazem uma verificação cruzada dos referenciadores de imagem para garantir que a página que solicita a imagem corresponda ao domínio que hospeda a imagem.
Então, quando você está acessando a imagem via, wget
está acessando a imagem diretamente. Portanto, as regras de leitura de imagens não são ativadas. Assim, você pode obter a imagem via, wget
mas não quando ela é incorporada em outra página.