关于七牛云测试域名过期如何下载图片资源
大家都知道,七牛云的测试域名是只有30天的有效时间,那如果在过期之前没有将里面的图片、文件资源下载保存下载,在过期之后是没办法访问了的,也没办法下载,所以该如何解决这个问题呢?其实也很简单:
先说结论:有两种办法:
第一种办法是:
重新创建一个测试bucket(会分配一个新的测试域名)
batchcopy 原bucket到新的bucket
qdownload 新bucket
第二种办法是:用一个已经ICP备案的域名绑定到测试域名
第二种办法很简单,我们主要是讲第一种办法:
1. 首先在七牛云控制台新建空间
使用浏览器进入七牛云控制台,在对象存储中新建一个存储空间,此存储空间需要与失效的存储空间在同一个【存储区域】上(比如都在华南,不在同一存储区域无法拷贝)。
2. 接下来需要到七牛云官方的工具:http://devtools.qiniu.com/qshell-v2.3.5.zip 或 http://devtools.qiniu.com/qshell-v2.2.0.zip (注意版本是2.2.0跟2.3.5命令上会有些许差异)将qshell工具下载下来并解压,然后在该文件夹下shift+右键,然后点击powershell工具,之后都需要在该工具上操作。命令格式:
# CMD 命令格式
qshell.exe 命令 参数
# Git Bash 等类 Linux 终端命令格式
./qshell.exe 命令 参数
首先设置权限:
# qshell-2.3.5 版本命令
./qshell.exe account <AccessKey> <SecretKey> <Name>
# qshell-2.2.0 版本命令
./qshell.exe account <AccessKey> <SecretKey>
Name是用户可以任意取的名字,表示当前在本地记录的账户的名称,和在七牛注册的邮箱信息没有关系。
到七牛云上将你的AK跟SK复制下来并粘贴到对应的位置(注意版本的命令区别)
3. 接下来我们需要将测试域名以失效的存储空间的文件全部下载下来:
第一步、获取失效之前所有文件的文件名称跟所在位置:
使用 listbucket 导出文件列表 参考官方网址:https://github.com/qiniu/qshell/blob/master/docs/listbucket.md
假设失效存储空间名为:bucketOld
假设新建存储空间名为:bucketNew
# qshell-2.3.5 版本命令
./qshell.exe listbucket bucketOld -o list.txt
# qshell-2.2.0 版本命令
./qshell.exe listbucket bucketOld list.txt
执行完这个命令之后你就会得到以下list.txt:
article/f9664d0bd47bbb502c14c2420246a340.png 11706 FuvcYD6QQw1TcANknPFCmi86OJCD 17186775691431600 image/png 0 0
article/fa3e3231dfcb012343f84d0b02d508a3.png 40538 FldsQD454DL5xLQkvtOaHBsCPylm 17186776491948051 image/png 0 0
avatar/9f3b876e75f7a774e721345075f2c276.png 62916 FkZnnuoRjhE2svzozWLKmdViStyv 17217070727051088 image/png 0 0
config/b52b69ebc94dc7d678a5b326ee8a084c.jpg 201844 FhOF8VMxCa-DW91Zx7Mweo8u7ZOV 17167107050184185 image/jpeg 0 0
pic/ 0 Fto5o-5ea0sNMlW_75VgGJCv2AcJ 17167053968790631 application/qiniu-object-manager 0 0
pic/backgroundPicture.jpg 2028369 FqzbMRbJfDZbtpWSAmdMnJT6Df4O 17167054250151036 image/jpeg 0 0
然后我们需要手动删除多余的数据,只留下文件名, 如:
article/0a1dd363cd6b816bbb0353a290938b26.png
article/5b0b5cd27e95df8b1a1d8731783936cf.png
config/7b854aaec8f70f85e27a887aec971a93.jpg
config/8685fce4857fc55031513ecf4e54218e.jpg
config/b52b69ebc94dc7d678a5b326ee8a084c.jpg
pic/
pic/backgroundPicture.jpg
然后保存文件
接下来就可以通过命令将旧文件复制到新文件上去了:
# qshell-2.3.5 版本命令
./qshell.exe batchcopy --force --overwrite bucketOld bucketNew -i list.txt
# qshell-2.2.0 版本命令
./qshell.exe batchcopy --force --overwrite bucketOld bucketNew list.txt
之后你就会在你新建的测试存储空间看到这些已经存在的文件了,然后就可以通过qdownload将其下载下来(qdownload无需下载):参考官方网址:https://github.com/qiniu/qshell/blob/master/docs/qdownload.md
# qshell-2.2.0 与 qshell-2.3.5 版本命令相同
./qshell.exe qdownload download.conf
download.conf文件的内容如下:
{
"dest_dir" : "D:\\img\\",
"bucket" : "bucketNew",
"cdn_domain" : "xxxxxx.bkt.clouddn.com"
}
|参数名|描述|
|----|----|
|dest_dir|本地数据备份路径,为全路径,并且文件夹需要事先创建好,不然无法下载|
|bucket|空间名称|
|cdn_domain|设置下载的CDN域名,此处为新建空间的测试域名。|
备注:
在Windows系统下面使用的时候,注意dest_dir的设置遵循D:\\aaa\\bbb这种方式。也就是路径里面的要有两个(\)。
在默认不指定cdn_domain的情况下,会从存储源站下载资源,这部分下载产生的流量会生成存储源站下载流量的计费,请注意,这部分计费不在七牛CDN免费10G流量覆盖范围。
特别注意,在执行命令的时候不一定是qshell.exe,有可能是qshell-windows-x64.exe。
