关于七牛云测试域名过期如何下载图片资源

194 阅读5分钟

大家都知道,七牛云的测试域名是只有30天的有效时间,那如果在过期之前没有将里面的图片、文件资源下载保存下载,在过期之后是没办法访问了的,也没办法下载,所以该如何解决这个问题呢?其实也很简单: 先说结论:有两种办法:

第一种办法是:

  • 重新创建一个测试bucket(会分配一个新的测试域名)
  • batchcopy 原bucket到新的bucket
  • qdownload 新bucket

第二种办法是:用一个已经ICP备案的域名绑定到测试域名

第二种办法很简单,我们主要是讲第一种办法:

  1. 首先在七牛云控制台新建空间 使用浏览器进入七牛云控制台,在对象存储中新建一个存储空间,此存储空间需要与失效的存储空间在同一个【存储区域】上(比如都在华南,不在同一存储区域无法拷贝)。
  2. 接下来需要到七牛云官方的工具: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复制下来并粘贴到对应的位置(注意版本的命令区别)

  1. 接下来我们需要将测试域名以失效的存储空间的文件全部下载下来: 第一步、获取失效之前所有文件的文件名称跟所在位置: 使用 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,要看清楚。