如何将我的 s3 上传存储桶从一个提供商迁移到另一个提供商?

我最初在 AWS 上设置了上传存储桶,但现在想改用 Linode。设置过程顺利,我已确认图片正在上传到 Linode。

不过,查看旧帖子时发现,它们仍然指向 AWS。我该如何将这些图片迁移到 Linode,以便删除 AWS 上的存储桶?

谢谢!

首先使用能够执行此操作的软件(如 aws cli、s3cmd 等)同步存储桶,然后执行替换所有帖子中的字符串

我刚运行了以下命令:

rake posts:remap["https://royaleapi-discuss-uploads.s3.dualstack.ap-northeast-1.amazonaws.com/","https://royaleapi-discuss-upload.ap-south-1.linodeobjects.com/"]

但提示“0 posts remapped”(0 篇文章已重映射)。

尽管我确认 URL 是正确的,例如查看这里的图片链接:

https://discuss.royaleapi.com/t/idea-for-season-21-the-archers-time/320

尝试

rake posts:remap["//royaleapi-discuss-uploads.s3.dualstack.ap-northeast-1.amazonaws.com/","//royaleapi-discuss-upload.ap-south-1.linodeobjects.com/"]

尝试了您的建议。还试了

rake posts:remap["royaleapi-discuss-uploads.s3.dualstack.ap-northeast-1.amazonaws.com","royaleapi-discuss-upload.ap-south-1.linodeobjects.com"]

结果相同:

正在重映射

0 篇帖子已重映射!

是否有其他命令可以查找所有未执行任何替换的帖子,以确认该命令能否找到有效的匹配项?

你想检查 Upload 对象:

cd /var/discourse
./launcher enter app
rails c
Upload.order(Arel.sql('RANDOM()')).limit(10).pluck(:id, :url)

很好的问题和建议。是否应该标记为#操作指南?