我最初在 AWS 上设置了上传存储桶,但现在想改用 Linode。设置过程顺利,我已确认图片正在上传到 Linode。
不过,查看旧帖子时发现,它们仍然指向 AWS。我该如何将这些图片迁移到 Linode,以便删除 AWS 上的存储桶?
谢谢!
我最初在 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)
很好的问题和建议。是否应该标记为#操作指南?