今天登陆七牛控制台看了下,吓我一跳:

之前使用的都是七牛提供的二级域名,一直都没什么问题,最近七牛更改了域名的使用政策,把每个空间分配的域名成了测试域名了,每个空间的域名只能使用 30 天,到期了外链就都无法访问了,简直坑爹啊。如果想使用外链,就得用自己备案过的域名。

这样的话,就只能放弃七牛了,国内可以做图床的还有腾讯云 COS(对象存储),调研了一番,觉得还不错。腾讯云COS 的外链同样支持 https,并且也提供一定的免费额度,对我来说也基本够用了。

下载七牛资源

想要把七牛上的资源都迁移到腾讯云,先要把七牛上的资源都下载下来,然后再上传到腾讯云,而现在七牛空间的域名都失效了,所有的资源现在都无法访问。那么怎么下载呢?

可以新建一个七牛空间,新建的空间是有 30 天的有效期的。使用七牛提供的 qshell 工具获取之前空间的文件列表,然后拷贝到新建的空间里。然后批量下载下来就可以了。

先下载 qshell

//更改执行权限
sudo chmod +x qshell-darwin-x64
ln -s qshell-darwin-x64 qshell
//登录七牛
./qshell account <AK> <SK>
//获取旧的空间文件列表
./qshell listbucket <旧的存储空间名称> list.txt
# 切割出文件名
cat list.txt | awk -F '\t' '{print $1}' > list_final.txt
# 把过期的文件列表搬迁到新的存储空间,我这里会出现让输入一个确认字符串,照着输入就行
./qshell batchcopy <旧的存储空间名称> backup list_final.txt

如果有多个空间,可以多重复几次,这样文件就都拷贝到新空间了。接下来就可以下载了:

qshell qdownload <download.conf>

需要新建一个下载配置文件:

{
    "dest_dir"   :   "/xxx/xxx/Downloads/qiniu", //下载路径
    "bucket"     :   "backup", //新建的空间名称
    "prefix"     :   "",
    "suffixes"   :   "",
    "cdn_domain" :   "http://ph8w9ahwg.bkt.clouddn.com", //空间的域名
    "referer"    :   "",
    "log_file"   :   "download.log",
    "log_level"  :   "info",
    "log_rotate" :   1,
    "log_stdout" :   false
}

上传到腾讯云

腾讯云提供了 macOS 和 Windows 的客户端,上传起来很方便:
https://cloud.tencent.com/document/product/436/11366

导出博客为 json,接下来可以把 json 文件中的七牛域名全部替换成腾讯云 COS 的外链域名,替换完毕,再把 json 重新导入到博客就可以了,试了下所有的图片都能正常访问了,整个过程花了 3 个多小时。