前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >导出七牛云内对象存储的数据

导出七牛云内对象存储的数据

作者头像
ZONGLYN
发布2019-12-31 11:57:30
1.6K0
发布2019-12-31 11:57:30
举报
文章被收录于专栏:程序萌部落程序萌部落

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

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

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

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

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

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

代码语言:javascript
复制
$ ./qshell-windows-x64-v2.4.0.exe CBVEWIVBOI82391091231 284VSHDUAVBU98-vgyhsd 1805984583@qq.com
该语句执行完无输出
利用新空间的测试域名

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

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

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

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

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

$ cat tocopy.txt | awk '{print $1}' > only-name.txt
去掉上面输出文件中的其他无关项,只留文件名
  • 执行 batchcopy 其仍属于 qshell 内的命令,是个批量拷贝命令,输入是个文件名构成的文件,可以用 –forece 强制移动。
代码语言:javascript
复制
$ ./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
...
移动后会打印出相关信息
最后一步
此处为本页面内的一张图片
此处为本页面内的一张图片

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

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

代码语言:javascript
复制
{
  "dest_dir": "F:\七牛", //本地目录
  "bucket": "zonelyn", //新空间名
  "cdn_domain": "q35ajtip3.bkt.clouddn.com" //外链默认域名
  //注释要删掉,不能留
}
  • 批量下载 最后就可以执行批量下载的命令了,输入就是上述配置文件,这样会将整个空间内的全部文件下载到本地目录内:
代码语言:javascript
复制
$ ./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加速,因为并没有多少下载量,让 资源分享面 可用才是最重要的。

详细的实现及效果稍后进行补充。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-12-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 准备工作
  • 利用新空间的测试域名
  • 最后一步
  • 暂时的替代方案
相关产品与服务
ICP备案
在中华人民共和国境内从事互联网信息服务的网站或APP主办者,应当依法履行备案手续。腾讯云为您提供高效便捷的 ICP 备案服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档