Однострочные ссылки на изображения не обновляются после загрузки на локальный диск

Здравствуйте,

Внезапно удалённые изображения перестали скачиваться на мой сервер, хотя я ничего не менял в конфигурации, и место на диске в порядке.
Я попытался посмотреть логи, но ничего подозрительного не обнаружил.
Единственное, что я заметил: в очереди задач Sidekiq нет процесса для скачивания изображений.

Не упустил ли я что-то?

С наилучшими пожеланиями

2 лайка

Возможно, ваш диск переполнен (если это причина остановки, у вас должно появиться уведомление на панели администратора).

Вы можете перезагрузить систему и/или пересобрать её, чтобы убедиться, что Sidekiq работает корректно. См. также /sidekiq.

РЕДАКТИРОВАНИЕ:

Ой. Извините за это.

1 лайк

Как я уже говорил, диск не заполнен (используется 30%), Sidekiq запущен.
Исправление: Задача Jobs::UpdateHotlinkedRaw выполняется, но в логах я не вижу никаких ошибок.

Попробую выполнить пересборку, чтобы проверить, не появится ли что-то новое.

2 лайка

Ничего страшного :wink:

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

1 лайк

Хм. Ну и ошибок в /logs нет?

1 лайк

Похоже, после пересборки логирование ошибок снова работает, потому что теперь я наконец вижу ошибки, связанные с изображениями.

default: Не удалось загрузить внешнее изображение (https://www.2dgalleries.com/planches/800W/2017/139/marvano-les-sept-nains-3140.jpg) пост: 945243
PG::UniqueViolation: ОШИБКА: дублирующееся значение ключа нарушает уникальное ограничение "index_post_hotlinked_media_on_post_id_and_url_md5"
DETAIL:  Ключ (post_id, md5(url::text))=(945243, af709cfc810efb23bda285d236a393a4) уже существует.

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

EDIT: Хорошо, есть что-то странное, но это может быть полезно. Миниатюры для изображений генерируются. Не было ли недавно изменений в коде, при которых URL вставленного изображения просто создаёт миниатюру со ссылкой на оригинальный источник?

2 лайка

Мы недавно рефакторили эту подсистему. Я связался с нужным инженером, держитесь.

4 лайка

Привет @Oni! Пожалуйста, приведи пример поста, который не работает (можно в личные сообщения, если не хочешь публиковать это открыто).

^^ это указывает на то, что изображения были загружены — мы не можем генерировать миниатюры из удалённых изображений. Поэтому странно, что изображения в посте всё ещё отображаются по прямой ссылке :thinking:

Вот ссылка

Удалённое изображение в этом посте должно было быть загружено. Эта проблема возникает уже 10–15 дней.

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

А, понял — похоже, что сама ссылка на изображение указывает на локально загруженную версию, а вот ссылка в теге <a href — нет.

Давайте проверим, произойдёт ли то же самое с этим изображением по внешней ссылке:

Редактирование: да, то же самое.

Спасибо за сообщение, @Oni — я исправлю это.

5 лайков

Я заметил, что в последней сборке появился новый параметр блокировки медиа, но ошибка ссылок onebox всё ещё сохраняется.

1 лайк

Да, этот баг всё ещё в моём списке задач :+1:

3 лайка

Не хочу быть тем, кто жалуется, но баг всё ещё здесь через месяц, когда нужно всего лишь переименовать переменную…

2 сообщения были перенесены в новую тему: Загрузка изображений с веб-сайтов газет не удаётся

Это должно решить проблему:

Изображения, которые сразу отображаются в одном блоке (oneboxed), теперь будут переписываться как markdown-изображения. Это было старое поведение до моего недавнего рефакторинга. Как и раньше, переписка происходит с задержкой около 10 минут.

5 лайков

У меня это вроде не работает.
Я сделал пересборку.

1 лайк

Ах да, новая логика не работала, когда onebox был единственным медиафайлом с прямой ссылкой в посте. Это должно исправить проблему: FIX: Ensure pull-hotlinked can rewrite lone oneboxes (#17354) · discourse/discourse@2d5d15b · GitHub

Вот пример onebox с прямой ссылкой на изображение — он должен быть переписан как изображение в течение следующих 10 минут или около того :crossed_fingers: (https://pbs.twimg.com/media/FRdPEnnX0AIy0V8?format=jpg&name=large)

Редактирование: да, кажется, это сработало. Не могли бы вы, @oni, попробовать ещё одно обновление и сообщить, как всё прошло?

3 лайка

Можу подтвердить, что всё работает как по маслу :wink:

2 лайка