在S3迁移后删除本地上传

我最近设法将文件移至 S3(Contabo 对象存储)Configure an S3 compatible object storage provider for uploads - #474 by tumbano

但旧的本地文件尚未删除。根据我的阅读,这应该是自动完成的(我已将“清理孤立上传”设置为 1 小时,“删除已删除上传的宽限期”设置为 1 天),但它没有。此外,Sidekiq 中还有一个名为“Jobs::CleanUpUploads”的作业标记为 FAILED。

有没有办法安全地删除文件或从命令行运行该作业?

我也遇到了类似的问题。我所有的上传都在我的存储桶中,但也在服务器的共享目录中 :thinking:

我刚刚创建了一个新的网站备份作为测试,它同时放到了共享目录和 S3 存储桶中。

好的,备份仍然会将本地上传文件夹放入存档中,即使它说不会。

我记得在迁移过程的最后有一个错误,一些文件没有被传输。我并不在意 80000 多个图像中丢失了几个,但谁知道呢,也许 Discourse 在意,所以今天我尝试了我在另一个主题上找到的东西,然后

cd /var/discourse
./launcher enter app
VERBOSE=1 rake posts:missing_uploads

结果是,有 2 篇帖子各缺少一张图片,并给了我确切的链接,所以我去编辑了这些帖子。再次运行该命令后,这次没有丢失文件。
带着一点希望,我又尝试运行 rake uploads:migrate_to_s3,但没有成功。这是它的结束方式

正在更新数据库中的 URL...
正在删除旧的优化图像...
正在标记所有包含灯箱的帖子以重新烘焙...
16163 篇帖子被标记为重新烘焙
rake 中止!
FileStore::ToS3MigrationError: 4 篇帖子未映射到新的 S3 上传 URL。db 'default' 的 S3 迁移失败。(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