Почему не загружаются изображения с некоторых страниц Tumblr, но работает wget на них?

помогая другу с подключением к интернету, потому что" некоторые страницы не будут загружаться", я заметил, что проблема заключалась в том, что изображения сообщений изображений некоторых блогов не загружались в браузере. Мне это показалось странным по следующим причинам:

  1. не загружаются только изображения, которые являются частью сообщения. Аватары пользователей, баннеры, заголовки, различные темы и / или изображения, связанные со страницами по-прежнему появляются.
  2. происходит с любым браузером на компьютере (проверено на Firefox и Chrome / ium как с, так и без блокировщиков рекламы/скриптов).
  3. используя wget по прямым ссылкам изображений работает.
  4. это относится не ко всем страницам Tumblr. Большинство загружается правильно, но при создании списка страниц с сообщениями, которые не загружают изображения, показывают, что они в основном из одной и той же группы пользователей.
  5. проблема, кажется, специфична для блога в том смысле, что если сообщение изображения определенного блога не загружается в браузере, другие блоги (незатронутые или нет), которые реблог тот же пост не загружается изображение в браузере. И наоборот, если затронутый блог является реблогом из незатронутого, изображение загружается нормально.
  6. изображения взяты из созданных пользователем постов Tumblr, где пользователь загружает изображение для публикации и размещаются в Tumblr. Например (этот пример не является одним из затронутых блогов), в этот образ в должности (выбирается случайным образом),этой будет прямой ссылкой на изображение в сообщении. Изображения автоматически сделать изображения ссылку на еще одна страница в Tumblr С помощью (обычно) большая версия изображения, используемого в сообщении, которое ближе к размеру того, что пользователь загрузил для сообщения.

что может быть причиной этого? Та часть, которая действительно получает меня, является тот факт, что wget работает, поэтому я думаю, что могу предположить, что это не проблема с сетью соединение.

обновление:

здесь пример реблог поста, что не удается загрузить в браузерах. The главная блог имеет другие сообщения изображения, которые загружаются должным образом. этой - это прямая ссылка на изображение в посте и здесь для большой версии (как здесь не загрузить). wget работает для обоих, но при переходе на любую прямую ссылку с Firefox, эта ошибка появляется:

This XML file does not appear to have any style information associated with it. The document tree is shown below.

<Error>
    <Code>AccessDenied</Code>
    <Message>Access Denied</Message>
    <RequestId>A626307DF577B411</RequestId>
    <HostId>J9GxX1HY9vX3ElWjYf7M48ByvKXLRIwRBJ2al2voS3J/C+WhILWHyd3crFhhNtkXuvG0zaxBTxw=</HostId>
</Error>

RequestID и HostId меняется каждый раз. Мой друг и я находимся на Филиппинах.

обновление [2014/03/08]

после дальнейших тестов и ответов на письма поддержки Tumblr, wget в некоторых случаях перестал работать (403 ошибки по прямым ссылкам).

обновление [2014/03/09]

отключение правил Tumblr для HTTPS-везде кажется иногда исправить проблему.


Примечание:

  • в примере для #6 прямые ссылки указывают на одно и то же изображение. Обычно, однако, тот, который используется в сообщении изображения (по сравнению с масштабируемой страницей изображения), использует меньшую версию изображения, чтобы соответствовать теме страницы. В примере используется тема, созданная для больших экранов, поэтому для нее не требуется уменьшенная версия.
5
задан Excellll
29.03.2023 10:05 Количество просмотров материала 3400
Распечатать страницу

3 ответа

обновление: кажется, основная проблема с изображениями не загружая вытекает из того, как EFF HTTPS Everywhere плагин / расширение обрабатываются некоторые URL-адреса Tumblr. Разработчики были уведомлены и исправить оказывается на месте. Этот ответ в основном разбивает детективную работу, проделанную для выявления проблемы, как указано в первоначальном вопросе, и может оказаться полезным для дальнейшей отладки/диагностики, если подобная проблема появляется в будущий.


изменить: большее содержание о leeching изображения кажется недействительным. Так будет добавить новую идею в верхней и оставить изображение leeching информацию в нижней части только в случае, если это полезно для кого-то.

идеи Amazon CloudFront CDN

хорошо, используя URL-адреса, которые вы предоставили,а также некоторые из моего реального опыта работы с настройками Amazon CloudFront CDN, я думаю, что что-то обнаружил. Похоже Конфигурация Amazon CloudFront CDN от Tumblr почему-то задыхается. Вот почему я думаю, что это так.

возьмем пример URL:

http://36.media.tumblr.com/d685b02fdf2d3f167c22d9a97e27e87a/tumblr_nfpq5qPZ4v1tognpro1_1280.png

теперь бежим curl -I чтобы получить информацию заголовка в этом файле:

curl -I http://36.media.tumblr.com/d685b02fdf2d3f167c22d9a97e27e87a/tumblr_nfpq5qPZ4v1tognpro1_1280.png

вывод для этого будет примерно таким:

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==

теперь вещи, чтобы обратить внимание на вот Date (дата и время файла в конечной точке CloudFront) и X-Cache (контент Amazon статус доставки) заголовки. Типичное поведение на Amazon CloudFront-первый доступ передаст "промах от cloudfront", а затем, если вы сделаете еще один curl -I сразу после этого должна быть Hit from cloudfront.

но это не то, что я только что видел. Вот разбивка Date и X-Cache статус кучи обращений, которые я сделал:

  • 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

причина, по которой есть несколько элементов с теми же точными данными, которые Hit from cloudfront ближе к концу, потому что это то, что происходит на CDN: если конечная точка CDN имеет файл, то Date коррелирует с фактической датой создания / изменения файла, который имеет конечная точка.

вы обратите внимание, что первые четыре доступа находятся в секундах друг от друга, с разными датами / временем, и все они Miss from cloudfront, да? Это означает, что конечная точка CDN просто повторяет, что в то время была попытка доступа к этому файлу, и все попытки были промахами.

Итак, моя оценка кресла заключается в том, что системы Tumblr не поспевают за Amazon CloudFront CDN или Amazon CloudFront CDN не поспевает за Tumblr. Но в некотором роде, все не так на их стороне сервера. И поскольку это CDN, кто-то, кто обращается к файлам в одном месте, может не заметить проблему, в то время как кто-то другой в другом месте будет иметь проблемы с просмотром изображения.

что все сказать, я не думаю, что это может быть легко прояснено на стороне клиента.


изменить: Итак, оригинальный плакат добавил несколько новых URL-адресов, и это все еще указывает на проблему на стороне сервера, но я просто хотел опубликовать детали для запись.

EdgeCast & Highwinds CDN идеи

таким образом, оригинальный плакат добавил больше специфики, так вот более подробную информацию на основе сообщения в блоге, который используется в качестве примера:

http://claystorks.tumblr.com/post/112741831192/soulmister-claystorks-windspeare-explain

и эти URL-адреса изображений предоставляются в качестве примеров URL-адресов в этом сообщении:

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

и эти два URL-адреса изображений действительно терпят неудачу. Но с моей стороны, глядя на исходный код sure сообщения в блоге из Бруклина, Нью-Йорк, США, я не вижу этих EdgeCast (gs1.wac.edgecastcdn.net) URL-адреса. Скорее, это URL-адреса, которые я вижу:

http://41.media.tumblr.com/76493f424ebb3b62d6de43e53643180a/tumblr_nkps82DdCh1sjn35qo1_500.png

http://41.media.tumblr.com/76493f424ebb3b62d6de43e53643180a/tumblr_nkps82DdCh1sjn35qo1_1280.png

так что моя первая мысль, почему оригинальный плакат, видя эти EdgeCast (gs1.wac.edgecastcdn.net). Но тогда, если я сделаю traceroute к 41.media.tumblr.com я вижу, что это сервер, управляемый Highwinds (!?!?). В отличие от исходных URL-адресов, передаваемых исходного пользователя используют 36.media.tumblr.com hostname и вы можете видеть, что они управляются серверами Amazon CloudFront CDN.

что все сказать-что я сказал раньше - все это, кажется, проблема на стороне сервера с Tumblr и их управлением CDN. Но с моей стороны-в Бруклине, Нью-Йорк, США-я четко вижу, что контент доставляется, как и ожидалось, с серверов HIGHWINDS CDN, а также серверов Amazon CloudFront CDN. Где эти EDGECAST URL-адреса приходят из или как / почему они затем терпят неудачу находится вне чьего-либо контроля на стороне клиента. Это определенно было бы чем-то, чтобы связаться с техническим персоналом Tumblr, потому что конечный пользователь рабочего стола не мог реши это.


Изображение Leeching Идеи

уже не актуально, но вот для справки.

вы заявляете это, дайте мне подсказку:

используя wget по прямым ссылкам изображений работает.

многие сайты имеют правила-обычно установленные через Apache-которые предотвращают leeching изображений. Подробнее о том, как работают эти правила здесь и кратко изложить следующим образом:

использование .htaccess, вы можете запретить горячие ссылки на вашем сервере, так что те пытаясь ссылку на изображение или CSS-файл на вашем сайте, например, заблокирован (неудачный запрос, например, поврежденный образ) или обслуживается различное содержание (т. е. изображение злого человека).

на основе вашего описания-и тот факт, что вы можете получить доступ к изображениям через wget-приводит меня к мысли, что образы у вас возникли проблемы с не размещенные на Tumblr пользователями, а изображения, которые размещены в блоге Tumblr, но фактически размещены на другом сайте.

когда стандартные процедуры leeching изображения ставятся на место, просмотр встроенного изображения на одном сайте, который размещен на другом сайте-который блокирует leeching-приведет к сломанной ссылке изображения или, возможно, " остановить Leeching!"изображение возвращается. Это связано с тем, что основные правила защиты от leeching, такие как в этом примере страницы, проверяют ссылки на изображения, чтобы убедиться, что страница с просьбой изображение совпадает с доменом хостинг изображения.

так что при доступе к изображению через wget вы получаете доступ к изображения напрямую. Так правила скачиваю изображения не подействует. Таким образом, вы можете получить изображение через wget но не тогда, когда он встроен в другую страницу.

10
отвечен JakeGould 2023-03-30 17:53

у меня в настоящее время есть эта самая проблема. Это сейф для работы-ну это же глупый комикс -пример блог.

если обнаружили, однако, что проблема произошла только в Chrome для меня. Через некоторое время, я понял, что причиной проблемы стало расширение "HTTPS везде."Когда я установил его в Firefox, у меня была та же проблема. И на самом деле, если я отключу правило HTTPS "Tumblr (частичное)" (что, я думаю, означает *.tumblr.com), it снова работает нормально.

Итак, вопрос, кажется, что по крайней мере иногда, когда HTTPS используется для доступа к изображению, вы будете перенаправлены на недопустимый url EdgeCast. Например, этот URL изображения отлично работает:

http://36.media.tumblr.com/57d2af15f7b21037364125f9f32c4379/tumblr_nktjzyNkv91s667kio1_1280.png

но если изменить протокол с http to https вы будете перенаправлены на этот URL, который не работает:

https://gs1.wac.edgecastcdn.net/8019B6/data.tumblr.com/57d2af15f7b21037364125f9f32c4379/tumblr_nktjzyNkv91s667kio1_1280.png

Я не уверен, что это считается ошибкой со стороны Tumblr или нет. Я думаю, что если клиенты не предполагается, что для доступа к их медиа-серверов с HTTPS вы не можете обвинить их в этом.

изменить: и на самом деле, проблема, кажется, были рассмотрены как сообщается в этой теме GitHub.

5
отвечен jdehesa 2023-03-30 20:10

Я заметил это поведение больше в то время как на моем мобильном операторе, T-Mobile. Я думаю это какой-то шейпинг трафика на основе размера изображения или какой-либо причине перевозчик "сложности метрика" в retreaving сказал пункт.

в предыдущем тестировании-более года назад-я поделился сломанным сообщением с другом, у которого есть Verizon, и изображение загружается нормально.

хотя я не могу проверить это изображение, я собираюсь предоставить-поскольку мой друг недоступен-это изображение не загружается для меня. Я запуск Android (5.0.1) на Nexus 5 с использованием Chrome в качестве браузера.

http://41.media.tumblr.com/efebad51567e927b8f130f9bdc4efae3/tumblr_ndvnpjcBZa1qewacoo1_500.png

когда я пытаюсь загрузить образ напрямую, я получаю ошибку тайм-аута шлюза 504.

EDIT: это @JakeGould размещения фактическое изображение для справки.

enter image description here

дальнейшее тестирование и подробности: я в Балтиморе MD, убегаю от данных LTE, и следующее изображение сработало: http://40.media.tumblr.com/a5e0a96d36170c997aabad7efc630d3e/tumblr_njnalkSD7M1s5cyzso1_500.jpg

дальнейшее тестирование показывает, что PNG не является проблемой. Большинство других изображений, которые я ударил, были смесью png и jpg, но все они были на серверах, отличных от "41".

заключительное примечание: Я вернулся домой, прыгнул на моем wifi-Comcast-с моим телефоном-устройство, которое я тестировал на-и все фотографии, которые я не мог видеть из-за 504 теперь я могу видеть.

EDIT: новое для суперпользователя, обрезанное и отредактированное сообщение, чтобы оно было более фактическим и менее обсуждаемым.

обновление: проблема, похоже, связана с LTE. Загрузили в Tumblr, нашли какие-то образы, что бы не загружать, заставил меня телефон с 3G, перезагрузка страницы, Все картинки покажу. Вернулся телефон обратно в LTE, очистил кэш, и изображения, которые ранее не загружались под LTE теперь загружаются.

(Я снова тестирую, и теперь я не могу воспроизвести. Так может быть вышеуказанное поведение было случайностью.)

1
отвечен userWCB 2023-03-30 22:27

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх