包含 S3 上传时恢复失败

我正在成功地将 S3 用于文件上传和备份。但只有在通过“是(不包括上传)”排除上传项进行备份时,还原才能成功。如果我在备份时仅选择“是”并包含上传项,则会在日志中收到错误:

EXCEPTION: Some uploads could not be migrated to the new scheme. You need to fix this manually.
[2022-08-18 20:57:23] /var/www/discourse/lib/file_store/to_s3_migration.rb:156:in `migrate_to_s3’

我希望备份能够完全独立并包含上传项,以便在需要将所有内容迁移到另一个 AWS 账户、发生任何不可预见的灾难或未来发生类似事件时,可以从备份中还原所有内容。

@serios 您能够解决此问题吗?我的环境中也出现了同样的问题。

这很难。问题是有些图片在另一个存储桶中,路径也不同,这会导致测试失败,所以你需要找到那些上传的文件并将它们放到正确的存储桶中。

是的……我们正在努力将 discourse 迁移到不同的环境……这包括将应用程序迁移到不同的主机,还将上传迁移到不同的 S3 存储桶。我们已经成功设置了应用程序并启用了 S3 上传到新的存储桶。所有新的帖子和上传都运行正常。我们正在尝试将备份从旧主机恢复到新主机,这时我们遇到了这个错误。过去两周我一直在为此苦苦挣扎。我看到建议是禁用 S3 上传,恢复,然后启用 S3 上传。

我准备好这样做了,只是想确认一下,如果我禁用 S3,恢复并启用 S3,所有恢复的上传是否会自动推送到新的 S3,还是我们应该运行 S3 迁移任务?

如果在恢复之前启用新的 S3 设置,它们将在恢复时推送到新存储桶。