2018-10-31
折腾
00

目录

起因
1. 在七牛云控制台新建空间
2. 安装七牛云官方命令行工具 qshell
3. 七牛账户密钥设置
4. 转移失效域名空间文件至新建空间
5. 从新建空间中下载所有文件
参考

起因

七牛云貌似改了政策,测试域名有个试用期,到期后就不能用,而且会导致绑定的空间中的文件,既不能外链下载,也无法直接从七牛的控制台下载。因此不少博客中的图片无法显示。

如果要继续正常使用,就得绑定自己在 ICP 备案过的域名。进行 ICP 备案,需要提交一台国内主机 IP。这就很扯了,域名可以买个便宜的,还得入手台用不上的国内主机。

于是打算换个图床。因为没有本地备份过,所以关键得先把失效域名空间中的文件下载下来。

1. 在七牛云控制台新建空间

浏览器进入七牛云控制台,对象存储中新建一个空间,用来把域名失效空间内的文件拷贝进去。因为新建空间可使用测试域名,所以可以从新建空间下载原来的文件,曲线救国。

注意 :新建空间一定要与域名失效空间在一个地区服务器上,否则无法拷贝进文件。

2. 安装七牛云官方命令行工具 qshell

从以下地址下载工具包:点击下载

解压后,得到的文件夹中存在对应三种操作系统的程序。终端程序工作目录切换到该文件夹中,我在 Windows 系统下,使用 qshell 方法为终端中使用以下形式的命令:

bash
./qshell.exe 命令 参数

3. 七牛账户密钥设置

使用 qshell 操作七牛空间,需要添加账户密钥 AccessKey 和 SecretKey, 赋予 qshell 权限。

bash
./qshell.exe account AccessKey SecretKey

4. 转移失效域名空间文件至新建空间

假设失效域名空间名叫 aaa,新建空间名叫 bbb。则从 aaa 批量拷贝文件到 bbb 命令如下:

./qshell.exe batchcopy --force --overwrite aaa bbb tocopy.txt

其中 tocopy.txt 是要拷贝的文件列表,首先导出 aaa 的文件列表:

./qshell.exe listbucket aaa tocopy.txt

在当前工作目录中便出现 tocopy.txt,再用上面的批量拷贝命令,便能将 aaa 中文件全部拷贝进 bbb 中。

5. 从新建空间中下载所有文件

用如下命令将新建空间 bbb 中的所有文件同步至本地目录:

./qshell.exe qdownload download.conf

其中 download.conf 为下载配置文件,在工作目录中创建,内容按如下填写:

{ "dest_dir" : "本地下载目录绝对路径", "bucket" : "要下载文件的空间名", "cdn_domain" : "新建空间的测试域名" }

注意 :"cdn_domain"如果不配置为测试域名,则 qshell 下载文件不走 CDN 免费流量,需支付流量费。

执行下载命令后,稍等片刻,便能在本地下载目录中看到失而复得的文件。再上传到靠谱的新图床,因为文件名没变,批量修改博客中图片外链的前缀图床地址,图片就能恢复显示。

参考

  1. 官方qshell文档

  2. Github中相关问题issues

本文作者:tsingk

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!