转载改编自:https://zhuanlan.zhihu.com/p/48536008

起因

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

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

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

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

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

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

华北选华北,华东选华东!!!**

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

下载qshell得到Zip文件。

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

  1. ./qshell.exe 命令 参数

3. 七牛账户密钥设置

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

  1. ./qshell.exe account AccessKey SecretKey

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

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

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

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

  1. ./qshell.exe listbucket aaa tocopy.txt

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

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

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

  1. ./qshell.exe qdownload download.conf

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

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

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

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

参考