Изображения не загружаются после слияния, даже если файл существует и модель Upload существует

Я использовал объединение двух сайтов Discourse в один, и в целом всё сработало, но изображения со второго сайта не отображаются.

Я могу сделать что-то вроде этого:

p=Post.find_by(topic_id: 222435, post_number: 11)
short_url=p.raw.match(/(upload:\/\/.*?)\)/)[1]
up=Upload.sha1_from_short_url(short_url)

И up.url выглядит как /uploads/default/original/3X/9/e/9ebb54f0e825c05df7f6df271a5cfbdc95a6332c.jpeg, а команда cd /shared; ls uploads/default/original/3X/9/e/9ebb54f0e825c05df7f6df271a5cfbdc95a6332c.jpeg находит файл.

Но https://host/uploads/default/original/3X/9/e/9ebb54f0e825c05df7f6df271a5cfbdc95a6332c.jpeg возвращает ошибку 404 от nginx.

Кажется, что если Upload существует и файл тоже существует, то NGINX должен корректно отдать его. Чего мне не хватает?

Для некоторых изображений я «решал» эту проблему, вставляя URL изображения с тестового сайта, после чего изображение генерировалось, преобразовывалось в загрузку (похоже, в ту же самую загрузку, которую я только что нашёл), и после перестроения поста изображение появлялось.

Я также пытался сделать что-то вроде:

f=File.open('/shared/uploads/default/original/2X/9/9ebb54f0e825c05df7f6df271a5cfbdc95a6332c.jpeg')
upload = UploadCreator.new(f, 'upload.jpeg').create_for(-1)

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

Привет, @RGJ. Подскажи, пожалуйста, как сделать так, чтобы эти изображения, которые, похоже, существуют в базе данных и в файловой системе, корректно отображались при повторной сборке?

Я ненавижу отлаживать такие ошибки.
В большинстве случаев я просто вручную выполняю код контроллера в консоли Rails.

В этот раз, полагаю, ошибка 404 может возникать на строке 111:

Что возвращает Discourse.store.list_missing_uploads(skip_optimized: true)?

В этом мы похожи. Но я уверен, что ты разбираешься в этом лучше меня. Большое спасибо за подсказки.

Я как раз пытаюсь сделать то же самое.

Это звучит как разумное предположение. Спасибо!

nil. skip_optimized: false — то же самое.

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