Однако старые локальные файлы не были удалены. Судя по тому, что я прочитал, это должно происходить автоматически (я установил «Очистка сиротских загрузок» на 1 час и «Период отсрочки для удаления удалённых загрузок» на 1 день), но этого не происходит. Кроме того, в sidekiq есть задача «Jobs::CleanUpUploads», помеченная как FAILED.
Есть ли способ безопасно удалить файлы или запустить задачу из командной строки?
Я помню, что в конце процесса миграции возникла ошибка, и некоторые файлы не были переданы. Меня не беспокоило, если бы отсутствовало несколько изображений из более чем 80 000, но кто знает, возможно, Discourse об этом беспокоился. Поэтому сегодня я попробовал решение, которое нашёл в другой теме:
cd /var/discourse
./launcher enter app
VERBOSE=1 rake posts:missing_uploads
Результат показал, что в двух постах отсутствует по одному изображению, и мне были предоставлены точные ссылки, поэтому я перешёл и отредактировал эти посты. После повторного запуска команды на этот раз отсутствующих файлов не обнаружено.
С небольшой надеждой я затем снова попробовал выполнить команду rake uploads:migrate_to_s3, но безрезультатно. Вот как всё закончилось:
Updating the URLs in the database...
Removing old optimized images...
Flagging all posts containing lightboxes for rebake...
16163 posts were flagged for a rebake
rake aborted!
FileStore::ToS3MigrationError: 4 posts are not remapped to new S3 upload URL. S3 migration failed for db 'default'. (FileStore::ToS3MigrationError)
/var/www/discourse/lib/file_store/to_s3_migration.rb:132:in `raise_or_log'
/var/www/discourse/lib/file_store/to_s3_migration.rb:81:in `migration_successful?'
/var/www/discourse/lib/file_store/to_s3_migration.rb:383:in `migrate_to_s3'
/var/www/discourse/lib/file_store/to_s3_migration.rb:59:in `migrate'
/var/www/discourse/lib/tasks/uploads.rake:126:in `migrate_to_s3'
/var/www/discourse/lib/tasks/uploads.rake:106:in `block in migrate_to_s3_all_sites'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management/null_instance.rb:36:in `each_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management.rb:21:in `each_connection'
/var/www/discourse/lib/tasks/uploads.rake:104:in `migrate_to_s3_all_sites'
/var/www/discourse/lib/tasks/uploads.rake:100:in `block in <main>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tasks: TOP => uploads:migrate_to_s3