本文作者:sitin(@sitinme)。版权归作者所有,未经授权禁止转载。
今天处理了一件小事:之前一直用来做图床的域名快到期了,不想再续费。手里还有其他会长期保留的域名,就想把图片访问地址换掉。
文件都存在 Cloudflare R2 里,这次让 AI Agent 帮忙查看后台、迁移文件和核对结果,过程中发现 Cloudflare 自带的迁移工具就能完成跨账号复制。
顺便记录一下流程,以及迁移后遇到的一个小坑。
同账号换域名
如果新域名和 R2 桶在同一个 Cloudflare 账号里,这是最简单的情况,只需要给原来的桶增加一个自定义域名,等状态变成 Active,找几张图片测试新地址就行。桶里的文件和路径都不用动。
我这次多了一步,因为准备长期使用的域名在另一个账号里,而 R2 直接绑定自定义域名,要求域名和桶位于同一个账号。官方说明
所以这次在目标账号里新建了一个桶,选好存储区域,再把新的 cdn 子域名绑定上去。旧桶和旧域名先保留,方便逐步切换。

跨账号迁移文件
R2 自带的 Super Slurper 已经支持从另一个 R2 桶迁入,可以直接在云端复制。官方文档
入口在目标账号的 R2 → 数据迁移 → 迁移文件。来源选择 Cloudflare R2,关闭“当前账号中的存储桶”,填入旧桶的 S3 URL 和读取凭据;目标选择新桶,填入对应的读写凭据。

这里准备了两枚临时令牌。旧账号只允许读取源桶,新账号只允许读写目标桶,有效期都设为 24 小时。迁移、校验完成后,就把这两枚令牌删除了。

目标桶选择“对象读和写”,并限定到指定桶;源桶的迁移令牌只需要“对象只读”。
后台显示成功后,又核对了两边的文件路径、数量、大小和内容,以及文件类型、缓存头等元数据。还抽查了不同格式和中文路径的新旧链接,确认能访问、内容一致。
上传成功后图床配置
文件迁好以后,我改了上传工具的配置,上传了一张新图片。图片地址正确且能访问就大功告成。
补充说一下,S3 Endpoint、桶名和密钥决定文件传到哪里;自定义域名决定上传后返回什么图片链接。
所以跨账号迁移要一起检查这两处。S3 Endpoint 换成目标账号的地址,使用新桶的上传密钥;“自定义域名”或“访问域名”也要换成新的 CDN 地址。

旧链接得单独处理
到这里,新桶和新域名已经可以用了。
但网站、数据库、Markdown 文章里保存的旧链接,不会因为文件迁走就自动更新。
能修改的内容,需要把旧域名批量替换成新域名,并检查实际页面。第三方文章如果还在直接引用旧地址,也要单独盘点。
旧域名失效以后,这些链接就可能断图,文件仍在新桶里也没用。我们目前保留了旧桶和旧域名,历史链接还要继续切换。这次用下来,Cloudflare 的云端复制确实方便。
最近发现一个好用的 AI 生图工具,分享一下。
写文章、做 PPT、搞 README 配图的时候经常需要快速出一张图,HiAPI.ai 直接输入描述就能出图,也支持生视频,响应很快,出图质量也不错。
新注册用户送 50 张 GPT Image 2 免费额度,不用绑卡,需要快速出图的可以试试。
👉 HiAPI.ai(直达链接:https://www.hiapi.ai/invite/QwfK)
想了解更多可以加我 vx: 257735 聊。
