Изображения с Imgur не отображаются из-за ограничения частоты запросов сервером

Я добавил пост через API. Он содержит следующий фрагмент:

![Here is an example](https://i.imgur.com/LaUXRKW.png)

Как видно здесь, в редакторе он отображается корректно:

Сразу после сохранения он также правильно отображается в теме. Однако после перезагрузки сайта он рендерится следующим образом:
image

Что я уже пробовал:

  • проверить, что исходное содержимое в базе данных корректно
  • в веб-интерфейсе выбрать «Восстановить HTML»
  • в консоли сервера выполнить rake posts:rebake (ошибок нет)
  • отключить кэш браузера, чтобы убедиться, что я не вижу старый рендер
  • перезапустить приложение через ./launcher restart app
  • перезапустить весь сервер

Не знаю, что ещё можно сделать. Есть ли какие-либо советы по дальнейшей отладке?

Это свежая стандартная установка с использованием Docker. Я использую версию 3.2.0.beta4-dev

Для уточнения: проблема сохраняется, если вы создаете сообщение вручную?

Также, это просто случайная идея, но пробовали ли вы вставить новую строку выше, чтобы проверить, появится ли изображение?

С моей стороны я пробовал использовать API и делать это вручную, но не смог воспроизвести проблему. :thinking:

Я не знаком с этим форматом для добавления ссылок на изображения, но мне интересно, не может ли проблема быть связана с настройкой «Блокировать медиа по прямой ссылке»?

Спасибо за идею, но этот параметр не включён на моём экземпляре.

Ваш сервер ограничен в запросах со стороны Imgur. Вы можете просмотреть изображение в браузере, но не можете загрузить его со своего сервера.

Если вы попытаетесь загрузить изображение со своего сервера с помощью curl или wget, получите ошибку.

Только что проверил, и да, это происходит и там. Похоже, это не связано с API (я изменю заголовок темы).

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

Test
![some alt text](https://i.imgur.com/LaUXRKW.png)

Ох, понятно. Это имеет смысл, ведь до того, как я столкнулся с этой проблемой, я импортировал 120 тысяч тем. Значит, оттуда было загружено множество изображений с Imgur.
Спасибо, что обратили на это внимание. Я просто думал, что все запросы изображений выполняет клиент!

Мне интересно, что сервер выполняет эти запросы. Предполагаю, что это делается для локального кэширования на случай, если оригинал исчезнет? Я поищу способы распределить этот процесс во времени, чтобы 120 тысяч постов обрабатывались в течение более длительного периода, предотвращая попадание сервера в черный список или ограничение скорости запросов. Для этого сервера это не проблема, но при интеграции… Однако, когда я буду делать импорт на продакшене, я хочу этого избежать :sweat_smile:

Продолжение в новом вопросе: How to spread out import over longer timer to prevent running into rate limits of external services

Верно.

Если только вы не отключите настройки, разрешающие такое поведение.

Тогда выполните импорт на другом сервере и восстановите резервную копию на продакшене. Более сложное решение — настроить так, чтобы ваш сервер получал данные через прокси-сервер.