七牛云测试域名过时后如何备份文件

qiniu-logo.jpg

以前不少人都会使用【七牛云】做为图床,很是方便,可是后来七牛云政策作了修改,测试域名只有30个天然日的试用期,到期将自动回收。致使存储空间中文件或图片既不能外链下载,也没法从七牛云的控制台下载或预览,所以不少博客中的图片没法显示。html

若是想要继续正常使用的话,须要绑定完成 ICP 备案的域名才能够,可是进行 ICP 备案,还须要一台国内主机,及一系列的手续,产生了没必要要的费用及麻烦。linux

那么如何将失效存储空间中的文件或图片下载下来呢?本篇将告诉你方法。git

1、使用自定义域名

若是您有一个完成 ICP 备案的域名,能够与失效存储空间进行绑定,绑定以后能够继续使用,也能够将文件或图片下载下来进行备份。github

此方法在此再也不赘述。shell

2、使用 qshell 备份文件

除了绑定自定义域名进行备份外,咱们还能够经过 qshell 工具进行文件的备份。windows

qshell 工具是七牛云官方提供得,方便开发者测试和使用七牛云API的一个命令行工具。浏览器

qshell 官方文档bash

qshell Github地址app

快速模式dom

# 在同存储区域内建立一个新的存储空间

# 帐号赋权
./qshell.exe account <AccessKey> <SecretKey> <Name>

# 获取失效存储空间的文件列表
./qshell.exe listbucket bucketError -o list.txt

# 处理文件,仅获取第一列文件名
cat list.txt | awk '{print $1}' >list_final.txt

# 将失效存储空间的文件复制到新的存储空间
./qshell.exe batchcopy --force --overwrite bucketError bucketNew -i list_final.txt

# 下载文件
./qshell.exe qdownload download.conf
复制代码

2.1 在七牛云控制台新建空间

使用浏览器进入七牛云控制台,在对象存储中新建一个存储空间,此存储空间须要与失效的存储空间在同一个【存储区域】上(好比都在华东,不在同一存储区域没法拷贝)。此存储空间被用来将失效存储空间中的文件复制进去,由于新建的存储空间有一个可使用30天的测试域名,因此能够从这个新建的存储空间中将原来的文件下载下来进行备份。

2.2 安装 qshell 工具

qshell 工具下载地址为:devtools.qiniu.com/qshell-v2.3…

下载完成后解压,将会获得对应三种操做系统的程序。

|-qshell-v2.3.5
  |-qshell_darwin_x64
  |-qshell_linux_arm
  |-qshell_linux_x64
  |-qshell_linux_x86
  |-qshell_windows_x64.exe
  |-qshell_windows_x86.exe
复制代码

若是你是 Windows 系统的话,那么你应该使用 qshell_windows_x64.exe 这个程序,由于这是一个命令行工具,因此双击打开会闪退,应该在命令行中操做。为了简化命令,可将其重命名为 qshell.exe ,命令使用形式以下:

# CMD 命令格式
qshell.exe 命令 参数

# Git Bash 等类 Linux 终端命令格式
./qshell.exe 命令 参数
复制代码

2.3 设置帐号密钥

想要使用 qshell 操做七牛空间,须要添加帐户密钥 AccessKey 和 SecretKey, 赋予 qshell 权限。

# qshell-2.3.5 版本命令
./qshell.exe account <AccessKey> <SecretKey> <Name>

# qshell-2.2.0 版本命令
./qshell.exe account <AccessKey> <SecretKey>
复制代码

AccessKey, SecretKey 两个参数能够从七牛云-密钥管理中获取。

Name是用户能够任意取的名字,表示当前在本地记录的帐户的名称,和在七牛注册的邮箱信息没有关系。

注:qshell-2.2.0 版本qshell-2.3.5 版本 命令上稍有差别。

qshell account 命令文档

2.4 复制失效存储空间文件至新存储空间

  • 假设失效存储空间名为:bucketError
  • 假设新建存储空间名为:bucketNew

若想要将失效存储空间的文件复制到新的存储空间,首先须要获取失效存储空间的文件列表,使用 listbucket 命令进行文件列表的导出。获取到文件列表后,使用 batchcopy 命令将 bucketError 中的文件所有复制到 bucketNew 中。

(1) 使用 listbucket 导出文件列表

# qshell-2.3.5 版本命令
./qshell.exe listbucket bucketError -o list.txt

# qshell-2.2.0 版本命令
./qshell.exe listbucket bucketError list.txt
复制代码

list.txt 文件结构以下:

Hexo.png	33446	Fmmc-_RoRE19Gy86M_p3sEqt-Ue3	15475323542679537	image/png	0
atom.xml	249682	FhtSZviyys9iSIMyPBmuohWEJDcE	15475323543559808	application/xml	0
favicon.ico	4286	FiXUxb856CirSyQ78t3VQNQmCIZO	15475323543881185	image/x-icon	0
ssh_rsa.png	17895	FsImghWkk55vj06DIt6DAhhLzAxQ	15475323564546303	image/png	0
复制代码

qshell listbucket 命令文档

(2) 修改文件列表结构

这里须要修改文件,只保留第一列的文件名,能够用awk获取list文件的第一列,否则没法进行复制。

cat list.txt | awk '{print $1}' >list_final.txt
复制代码

windows 系统中CMD没法使用上面的命令,可使用 Git Bash 终端或手动修改文件。 list_final.txt 文件结构以下:

Hexo.png
atom.xml
favicon.ico
ssh_rsa.png
复制代码

(3) 复制文件到新存储空间

获取到须要的文件列表 - list_final.txt 后,就能够进行文件的复制了。使用 batchcopy 命令进行复制。 文件复制方向: bucketError -> bucketNew

# qshell-2.3.5 版本命令
./qshell.exe batchcopy --force --overwrite bucketError bucketNew -i list_final.txt

# qshell-2.2.0 版本命令
./qshell.exe batchcopy --force --overwrite bucketError bucketNew list_final.txt
复制代码
  • force : 没有此选项,须要输入验证码,加入此项则不须要输入。
  • overwrite :若是批量复制的文件列表中存在目标空间已有同名文件的状况,针对该文件的复制会失败,若是但愿可以强制覆盖目标文件,那么可使用-overwrite选项。

qshell batchcopy 命令文档

2.5 下载新存储空间的文件

使用 qdownload 命令能够将存储空间中的文件下载到本地。可是该功能默认须要收取流量费用,若是想要免费下载,还需进行如下配置。

(1) 配置 download.conf

qshell 目录下建立新文件 download.conf ,并将如下信息添加进去。

{
    "dest_dir"   :   "D:\\Images\\",
    "bucket"     :   "bucketNew",
    "cdn_domain" :   "xxxxxx.bkt.clouddn.com"
}
复制代码
参数名 描述
dest_dir 本地数据备份路径,为全路径,而且文件夹须要事先建立好,否则没法下载
bucket 空间名称
cdn_domain 设置下载的CDN域名,此处为新建空间的测试域名。默认为空表示从存储源站下载,需支付源站流量费用,没法减免!!!

备注:

  1. 在Windows系统下面使用的时候,注意dest_dir的设置遵循D:\jemy\backup这种方式。也就是路径里面的\要有两个(\)。
  2. 在默认不指定cdn_domain的状况下,会从存储源站下载资源,这部分下载产生的流量会生成存储源站下载流量的计费,请注意,这部分计费不在七牛CDN免费10G流量覆盖范围。

(2) 文件下载

配置好文件以后,可使用下面的命令进行文件下载:

# qshell-2.2.0 与 qshell-2.3.5 版本命令相同
./qshell.exe qdownload download.conf
复制代码

下载完成后能够在对应的文件夹中查看下载的文件。不论是备份,仍是更换图床都是能够的了。

qshell qdownload 命令文档

3、参考

  1. 七牛云 qshell 官方文档
  2. qshell Github地址
  3. Github 中关于此问题的issues

点击阅读原文

相关文章
相关标签/搜索