以前不少人都会使用【七牛云】做为图床,很是方便,可是后来七牛云政策作了修改,测试域名只有30个天然日的试用期,到期将自动回收。致使存储空间中文件或图片既不能外链下载,也没法从七牛云的控制台下载或预览,所以不少博客中的图片没法显示。html
若是想要继续正常使用的话,须要绑定完成 ICP 备案的域名才能够,可是进行 ICP 备案,还须要一台国内主机,及一系列的手续,产生了没必要要的费用及麻烦。linux
那么如何将失效存储空间中的文件或图片下载下来呢?本篇将告诉你方法。git
若是您有一个完成 ICP 备案的域名,能够与失效存储空间进行绑定,绑定以后能够继续使用,也能够将文件或图片下载下来进行备份。github
此方法在此再也不赘述。shell
除了绑定自定义域名进行备份外,咱们还能够经过 qshell 工具进行文件的备份。windows
qshell 工具是七牛云官方提供得,方便开发者测试和使用七牛云API的一个命令行工具。浏览器
qshell 官方文档bash
快速模式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
复制代码
使用浏览器进入七牛云控制台,在对象存储中新建一个存储空间,此存储空间须要与失效的存储空间在同一个【存储区域】上(好比都在华东,不在同一存储区域没法拷贝)。此存储空间被用来将失效存储空间中的文件复制进去,由于新建的存储空间有一个可使用30天的测试域名,因此能够从这个新建的存储空间中将原来的文件下载下来进行备份。
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 命令 参数
复制代码
想要使用 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 版本 命令上稍有差别。
若想要将失效存储空间的文件复制到新的存储空间,首先须要获取失效存储空间的文件列表,使用 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
复制代码
(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
复制代码
使用 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域名,此处为新建空间的测试域名。默认为空表示从存储源站下载,需支付源站流量费用,没法减免!!! |
备注:
(2) 文件下载
配置好文件以后,可使用下面的命令进行文件下载:
# qshell-2.2.0 与 qshell-2.3.5 版本命令相同
./qshell.exe qdownload download.conf
复制代码
下载完成后能够在对应的文件夹中查看下载的文件。不论是备份,仍是更换图床都是能够的了。