[原创] 图床从七牛云迁移到腾讯 COS 折腾笔记
引子
我用的是七牛图床,最近写博客发现图片能上传,但是获取外链地址时出现 [5402] 获取 bucket 域名失败
,导致图片无法使用外链地址。后面上网一查,才发现是测试域名被收回了。
此时心中一万个不爽!官方解决方法就是要绑字一个已备案的域名来替代。一个博客而以,还要用到网站备案嘛?所以我打算找替代方法,将图床迁移出。比较了国内几个比较知名的站(又拍云,新浪相册,yupoo)。最后选择了腾讯 COS。
正文
因为我使用的系统是 debian。所以下文是以 linux 为系统环境的。
在网上找了一些关于七牛云迁移到腾讯 COS 的文章,执行起来几乎都有问题。这里我把折腾的迁移方案记录下来,给大伙一个参考!
使用 qshell
转移 bucket 文件到另一个 bucket.
文档说明:命令行工具 (qshell)
1 | wget http://devtools.qiniu.com/qshell-v2.3.0.zip?ref=developer.qiniu.com #下载qshell |
有了这个命令行工具,还需要知道七牛的 AK
和 SK
和七牛用户名
运行命令:
1 | ./qshell account <AK> <SK> 七牛用户名 |
运行之后确认是否成功!
1 | ./qshell user ls |
然后导出 bucket 文件信息
1 | ./qshell listbucket blog > kkk.txt #blog是我的储存空间名,需要改成自己的。 |
接着先在七牛云上,再新建一个储存空间 temp
。
将文件转移到储存空间 temp
上。
1 | ./qshell batchcopy blog temp -i list.txt |
把过期的文件列表搬迁到新的存储空间,会出现让输入一个确认字符串,照着输入就行。
批量下载到本地
因为要迁移到腾讯 COS,自然要把图片下载下来,不过在网页端只能一张张图片下载,还好 qshell 提供了 qdownload 可以批量下载文件,不过官网给出的 api 文档特别标注了,这个接口默认是要收费的:配置【该功能默认需要计费,如果希望享受 10G 的免费流量,请自行设置 cdn_domain 参数,如不设置,需支付源站流量费用,无法减免!!!】
相关文档:qdownload
什么要收费!?
收费是不可能收费的,这辈子都不可能收费的!
先运行下面的命令
1 | mkdir /mnt/qldownload |
将下面的内容复制进去,然后保存退出。
1 | { |
注意:”cdn_domain” 后面的地址要改成你自己的。
注意:”cdn_domain” 后面的地址要改成你自己的。
注意:”cdn_domain” 后面的地址要改成你自己的。
下面是”cdn_domain” 地址的截图,根据自己的来修改。
运行命令下载图片资源
1 | ./qshell qdownload -c 10 batch_download.conf |
正常的话,图片就会下载到 /mnt/qldownload
这个目录下了。
上传到腾讯 COS
把所有的文件下载下来之后,然后还需要把文件上传到 COS,这样图片才可以作为资源被外部访问,如果你之前没有使用过对象存储服务,还需要先创建一个存储桶,记住权限要设置成对外可读 (不然别人也访问不了), 然后把这些文件上传到这个存储桶里边,这个在网页上就可以直接操作,可以批量把刚才下载的都上传了。官方也有文件管理软件 COS Browser,上传下载图片还是挺方便的。
首先在腾讯 COS 上新建一个存储桶,访问权限设置成公有读私有写
进入密钥管理
新建密钥
下载安装 COS Browser
登陆介面输入 Secretld
和 SecretKey
将刚才下载的图片资源上传到腾讯 COS
批量替换博文里七牛云链接
到这就剩最后一步了,将原来博客里的七牛云的图片链接全部替换成腾讯 COS 的域名。老域名可以看你自己的博客文件,例如我的是 http://7xn9y9.com1.z0.glb.clouddn.com
, 然后新的域名可以直接在腾讯云控制台,点开一张你上传过的图片查看,我的是 https://blog-1254094716.cos.ap-chengdu.myqcloud.com
. 具体的文件名因为都是一样的编码方式,所以只用替换域名就行,这里可以用 sed
命令来批量操作。
进入自己的博客主目录运行
1 | cd source/_post |
替换时,先不要加 -i
参数,等确认替换的内容没有问题之后再添加 -i
进行替换。
1 | sed -i s#(http://7xn9y9.com1.z0.glb.clouddn.com#(https://blog-1254094716.cos.ap-chengdu.myqcloud.com#g *.md |
备注: 之所以替换的链接带上 (是为了防止误伤,比如这边文章里就有七牛的域名链接地址,但是图片链接在 MarkDown 写法里都是放在括号里的,所以记得这么替换就行)
至此已全部完成迁移!