🌕 🌖 🌗 🌘 🌑 🌒 🌓 🌔 🌕

大概半年多以前,七牛云就失效了,一个是欠费再一个是没有绑定域名,听说是七牛云被举报了然后就必须要实名认证了,而且测试域名的时间也变得只有一个月之久,基本没什么作用了。如果绑定域名,需要该域名是备案的域名,这对于大部分自建博客的人来说基本就是死路一条了,备案的个人博主还是比较少的。

如上,我自然是没法再访问对象存储里的数据了,不过比较欣慰的是七牛云并不会删除上传的数据,数据仍然在相关的 bucket 里测试域名被回收了,现在要做的就是将数据导出,然后使用其他方案,例如阿里的oss或者自己服务器上,无论如何,将数据从七牛云导出是最重要的,但恶心人的是:七牛云的控制台里没有导出的功能,执行导出要借助额外的工具,全部工具列表如下:

https://developer.qiniu.com/kodo/tools/1302/qshell

这里我们使用 qshell,在命令行完成原数据的下载

准备工作

  • 下载 qshell
    qshell 是一个命令行工具,在 Win 系统下就是个 exe 可执行文件,官方教程还要配置环境变量,其实直接输入该 exe 名称运行也可以。
1
2
需要在该文件的目录内
$ ./qshell-windows-x64-v2.4.0.exe -v
  • 配置密钥

在七牛云的web控制台中,个人中心里的密钥管理,可以找到自己的 AK 和 SK,帐号名称即用户名。

1
2
$ ./qshell-windows-x64-v2.4.0.exe CBVEWIVBOI82391091231 284VSHDUAVBU98-vgyhsd 1805984583@qq.com
该语句执行完无输出

库的整体移动

  • 利用新空间的测试域名

由于没域名,用 qshell get 下载总是失败,或许不是域名的原因,但总归是卡住了,找了半天找到了可行的新方案,即:

实名认证 -> 新建Bucket -> 转移空间内的数据 -> 用新空间的测试域名下载

还是不用备案的域名,符合我的预期,认证也比较简单,上传身份证然后支付宝搞一下就行了,说是三个工作日审核其实完成认证操作后马上就能新建Bucket了,新建完后,记住新空间的名字,下面用 batchcopy 来完成移动。

注意:新建的空间要和原空间在同一个大区内。

  • 获得文件名列表
    这里使用 listbucket 命令,将输出存到文件中,利用 awk 直接取出第一列即可(强烈推荐使用 git bash 运行,大家应该都有)。
1
2
3
4
5
6
$ ./qshell-windows-x64-v2.4.0.exe listbucket whereareyou > tocopy.txt
只有一个参数即:空间名称
其会列出该空间内的全部文件,带文件夹路径

$ cat tocopy.txt | awk '{print $1}' > only-name.txt
去掉上面输出文件中的其他无关项,只留文件名
  • 执行 batchcopy
    其仍属于 qshell 内的命令,是个批量拷贝命令,输入是个文件名构成的文件,可以用 –forece 强制移动。
1
2
3
4
5
6
7
8
9
10
$ ./qshell-windows-x64-v2.4.0.exe batchcopy --force whereareyou zonelyn -i only-name.txt
参数分别是:旧空间名,新空间名,移动文件的名称列表
...
Copy 'whereareyou:image/acger/app.png' => 'zonelyn:image/acger/app.png' success
Copy 'whereareyou:image/acger/group.png' => 'zonelyn:image/acger/group.png' success
Copy 'whereareyou:image/gif/107659232.gif' => 'zonelyn:image/gif/107659232.gif' success
Copy 'whereareyou:image/gif/120094544.gif' => 'zonelyn:image/gif/120094544.gif' success
Copy 'whereareyou:image/gif/148607128.gif' => 'zonelyn:image/gif/148607128.gif' success
...
移动后会打印出相关信息

image

上述操作后,新建的 bucket 中已经具有原空间的全部数据了,并且具有测试域名。这样就比较好办了,有多种方法,这里用 qdownload 批量进行下载,由于需要拼凑下载路径,这里可以直接通过补充配置文件完成。

最后一步

在 qshell-windows-x64-v2.4.0.exe 所在的目录新建下载配置文件 dcongf.txt:

1
2
3
4
5
6
{
"dest_dir": "F:\七牛", //本地目录
"bucket": "zonelyn", //新空间名
"cdn_domain": "q35ajtip3.bkt.clouddn.com" //外链默认域名
//注释要删掉,不能留
}
  • 批量下载
    最后就可以执行批量下载的命令了,输入就是上述配置文件,这样会将整个空间内的全部文件下载到本地目录内:
1
2
3
4
5
6
7
8
9
$ ./qshell-windows-x64-v2.4.0.exe qdownload dconf.txt
Writing download log to file C:\Users\zonglin\.qshell\qdownload\d2f9566497ad74e39755de09c8837d9b\d2f9566497ad74e39755de09c8837d9b.log
...
Downloading image/gif/165263167.gif [25/1364, 1.8%] ...
Downloading image/gif/166739693.gif [26/1364, 1.9%] ...
Downloading image/gif/170320182.gif [27/1364, 2.0%] ...
Downloading image/gif/174817916.gif [28/1364, 2.1%] ...

...

慢慢等待上述过程完成,自此全部数据就从七牛云上弄出来了。全部数据大小在10G内是肯定没问题的,下载可能很慢,等着吧。

开倒车

  • 转存到自己的本地服务器

使用自用服务器,用 nginx 驱动,直接把数据放在自己的机器上,也不用什么cdn加速,因为并没有多少下载量,让 资源分享面 可用才是最重要的。

image

没有 CDN 加速,也没有任何优化,怎么说呢,一个是本身下载的就基本没有,再一个家里的上行速度还可以,如果在国内的话下载体验应该不差,在国外亲自体验下载速度大约在 700kb/s 左右,够用了。

七牛云的 BUG

对于带有空格文件名的文件,正常上传到七牛云是可以下载和访问的,但是:使用 qshell 读出文件列表时,会按空格分割并只能获取第一部分,这明显是个 大BUG,怎么说呢,七牛云的服务本身也就那样,照理说 qshell 这些东西完全可以放在前端页面上,总之令人感觉七牛云是个半成品,反正也不用了,在咋咋地吧。



😒 留下您对该文章的评价 😄



 评论




全站共计 279.4k 字,自豪地使用 Volantis 主题

博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议