大家都知道,七牛云的测试域名是只有30天的有效时间,那如果在过期之前没有将里面的图片、文件资源下载保存下载,在过期之后是没办法访问了的,也没办法下载,所以该如何解决这个问题呢?其实也很简单: 先说结论:有两种办法:
第一种办法是:
- 重新创建一个测试bucket(会分配一个新的测试域名)
- batchcopy 原bucket到新的bucket
- qdownload 新bucket
第二种办法是:用一个已经ICP备案的域名绑定到测试域名
第二种办法很简单,我们主要是讲第一种办法:
- 首先在七牛云控制台新建空间 使用浏览器进入七牛云控制台,在对象存储中新建一个存储空间,此存储空间需要与失效的存储空间在同一个【存储区域】上(比如都在华南,不在同一存储区域无法拷贝)。
- 接下来需要到七牛云官方的工具:devtools.qiniu.com/qshell-v2.3… 或 devtools.qiniu.com/qshell-v2.2… (注意版本是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复制下来并粘贴到对应的位置(注意版本的命令区别)
- 接下来我们需要将测试域名以失效的存储空间的文件全部下载下来: 第一步、获取失效之前所有文件的文件名称跟所在位置: 使用 listbucket 导出文件列表 参考官方网址:github.com/qiniu/qshel… 假设失效存储空间名为: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/9018b3dc44f1e2da12dfde378753cb94.png 48490 FpvbPzSchDW9mA3lmqNxkQymLtCj 17184355046082066 image/png 0 0
avatar/9f3b876e75f7a774e721345075f2c276.png 62916 FkZnnuoRjhE2svzozWLKmdViStyv 17217070727051088 image/png 0 0
avatar/be866f1db235cdbda21233a726febcd6.png 76881 FsdKu_ZBBhuqHBqgPX0eP37iQnse 17167098700699907 image/png 0 0
avatar/f3119cdd91f133db2dd0de3f6bfb239a.png 69552 Fuly-xMo6HSjkot7C-JvQ3S1Cd5b 17185281870586719 image/png 0 0
b52b69ebc94dc7d678a5b326123123123123.png 1266967 FsizXr4T1brNMWvty68TK99axGJq 17210260019895521 image/png 0 0
config/5169640109761800878d8045dcaadc50.jpg 144630 FhkG5MscidUTwRCKC-2B2vmcR05x 17167106799891168 image/jpeg 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
pic/bg.png 308607 FhRXnQmj6Kzqu5ALEzlhRWCv3mjS 17167054245920843 image/png 0 0
然后我们需要手动删除多余的数据,只留下文件名, 如:
article/0a1dd363cd6b816bbb0353a290938b26.png
article/5b0b5cd27e95df8b1a1d8731783936cf.png
article/667280f7a7f5d9f182e6bbf634733dc2.png
b52b69ebc94dc7d678a5b326123123123123.png
config/5169640109761800878d8045dcaadc50.jpg
config/6208a2e291c4473af7f97647b7c99739.png
config/7b854aaec8f70f85e27a887aec971a93.jpg
config/8685fce4857fc55031513ecf4e54218e.jpg
config/b52b69ebc94dc7d678a5b326ee8a084c.jpg
pic/
pic/backgroundPicture.jpg
pic/bg.png
然后保存文件 接下来就可以通过命令将旧文件复制到新文件上去了:
# 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无需下载):参考官方网址:github.com/qiniu/qshel…
# 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,要看清楚。 |