Я только что попытался изменить заголовок старой темы. Затем я заметил, что все изображения в теме теперь имеют формат transparent.png и отображаются некорректно.
Команды rake uploads:recover и rake posts:rebake не решили проблему.
Я могу получить доступ к изображению по ссылке https://talk.zabanshenas.com/uploads/default/original/3X/8/7/8726fbef7b69ac8226d28568b46f3e06afe2fb4f.jpeg
Сама загрузка выглядит так: 
Однако, когда я выполняю:
Upload.where( "url LIKE '%8726fbef7b69ac8226d28568b46f3e06afe2fb4f%'" )
я получаю
=> []
Есть какие-нибудь идеи?
Если я загрузю точно такое же изображение в другом месте, в старом посте после пересборки (rebake) тоже появится это изображение. Похоже, это связано с индексацией некоторых ранее загруженных файлов. Как можно переиндексировать все загруженные файлы? Или ещё лучше — проиндексировать только те, которых не хватает.
Обновление:
Я изучил несколько задач Rake и заметил rake posts:recover_uploads_from_index, которая, похоже, решает мою проблему. Однако я получаю следующую ошибку:
undefined method `split' for nil:NilClass
from /var/www/discourse/app/models/site_setting.rb:151:in `s3_base_url'
У меня не включена загрузка файлов через S3 для моего сайта
![]()
Обновление:
Я применил временное неуклюжее исправление для вышеуказанной ошибки (закомментировав эту строку) и запустил задачу rake. Однако результат оказался не таким, как я ожидал:
Поиск upload://dC9HyffX3S1XbwwdUOsHe5aMyJX.jpeg (dC9HyffX3S1XbwwdUOsHe5aMyJX) в индексе
Пропуск upload://dC9HyffX3S1XbwwdUOsHe5aMyJX.jpeg в https://talk.zabanshenas.com/t/topic/4430/1, так как имя файла кажется слишком коротким
Поиск upload://kWx14u8XkQ8qd6NvOoDLN6usTl8.jpeg (kWx14u8XkQ8qd6NvOoDLN6usTl8) в индексе
Пропуск upload://kWx14u8XkQ8qd6NvOoDLN6usTl8.jpeg в https://talk.zabanshenas.com/t/topic/4430/1, так как имя файла кажется слишком коротким
Я углубился в задачу rake rake uploads:recover. Мне кажется, что в следующей строке что-то не так:
Насколько я понимаю, здесь все файлы в uploads/default/original должны быть добавлены в @paths. Однако я попытался вывести содержимое @paths в файл, и в списке оказались только файлы-тумбстоуны (tombstone files).
Не упустил ли я что-то здесь?
@cvx
Думаю, это должно выглядеть так:
concat(Dir.glob(File.join(
Rails.root, "public", Discourse.store.upload_path,
'original',
'**',
'*.*'
)))
