七牛/腾讯/网易云/Ucloud/QingCloud对象存储数据迁移(批量上传/下载)

七牛/腾讯/网易云/Ucloud/QingCloud对象存储数据迁移(批量上传/下载)

镜像回源迁移方式

什么是镜像回源迁移?

镜像回源,就是在新云里设置一个旧云的回源域名,请求资源的时候直接请求新云,如果新云里不存在该资源,它就会去旧云中获取这个资源(比如图片/视频等等)并把它存起来,用这样的方式把旧云中的资源全部转到新云,这就是镜像回源,镜像就是复制一份的意思。

举例说明镜像迁移回源

还是用例子说明吧,容易明白!
假设我现在博客的图片都存在七牛云的对象存储中,后来我发现网易云的对象存储免费额度更大,想要从七牛云换到网易云,那我就要把七牛云中的图片全部迁移到网易云,怎么迁移呢?。

首先能想到的方法当然就是你把七牛云的所有图片下载下来,再全部存到网易云上去。这种方法,就看不同的云提供的工具了,一般都提供命令行工具比较多,对普通用户及第一次使用的用户,可能要花点时间研究怎么用,当然也有些有客户端的比如腾讯云,也有支持ftp的,比如又拍云(又拍云可以用ftp客户端连接,然后全部下载下来)。

另一种方法就是使用镜像回源功能了。镜像回源,就是你不需要把七牛云的图片全部下载再上传到网易云了,你直接把你博客中的图片地址域名全部换成网易云的图片域名就行。

比如你原来调用图片是这么调用的:

http://img.qiniu.cn/test.jpg

那你直接把img.qiniu.cn换成img.netease.cn即可,其他不变(注意这两个域名并不是真实的域名,我只是举例,你使用的时候肯定要是真实的对的域名)。

http://img.netease.cn/test.jpg

这样的话,这张图片肯定访问不到,因为网易云中并不存在呀,别急,你可以在网易云里设置一个图片源域名(在本例中,你的图片源域名就是http://img.qiniu.cn/),当你访问网易云中的这张图片不存在时,网易云会自动去你设置的那个域名里相同的路径下找到这张图片并下载到网易云,然后再把图片返回给你的博客,这样你博客就显示图片了,下次你博客再次加载这张图片,因为网易云已经把它存下来了,所以就直接返回给你了,用这样的方式,凡是第一次加载的,网易云都会去你设置的源域名里面下载到网易云,慢慢的,七牛云的图片都下载到网易云了。

镜像回源迁移的优缺点

回源镜像的优点是不需要花时间迁移,只要填一个地址即可,非常方便,而且所有云的对象存储都支持这个方式,缺点就是,一定要被访问过的图片才会迁移过来,假如你有一篇博客里面有图片,然后这篇博客因为太久远,一直没有人访问过,那这博客里的图片也就不会从七牛云迁移到网易云,这时如果你直接放弃七牛云不用了,那就会造成图片丢失了。

七牛云工具/文档

先下载批量备份数据工具:qshell

批量下载七牛云文件

在下载好的qshell工具目录里,新建文件:qshell.config,把以下内容复制进去,把bucket改成你要批量下载文件的bucket,把cdn_domain改成你绑定的域名(如果测试域名失效而你又没有绑定真实域名,那是无法下载的),suffixes是后缀,意思是你要下载哪些后缀的文件,其他的可以不修改。

{
    "dest_dir"   :   "./QNbackup",
    "bucket"     :   "markdown",
    "prefix"     :   "",
    "suffixes"   :   ".png,.jpg,.gif,.mp4",
    "cdn_domain" :   "img.xxxx.cn",
    "referer"    :   "",
    "log_file"   :   "download.log",
    "log_level"  :   "info",
    "log_rotate" :   1,
    "log_stdout" :   false
}

先设置你的accesskey和secret,格式./qshell-darwin-x64 account AccessKey SecretKey

./qshell-darwin-x64 account ELUs327kxVPJrGCXqWae9yioc0xYZyrIpbM6Wh6x LVzZY2SqOQ_I_kM1n00ygACVBArDvOWtiLkDtKiw

执行以下命令批量下载图片/文件,其中数字10表示并发数,你可以写成20或更大,这个看情况,其中我是Mac电脑,所以使用qshell-darwin-x64,Linux或windows使用相应工具即可。

./qshell-darwin-x64 qdownload 10 qshell.config

下载的文件,就在当前路径下的QNbackup目录中。

然后再上传到其他云中(怎么上传,不同云有不同方法,这个得自己找方法了)。

批量上传本地文件到七牛云

./qshell-darwin-x64 qupload 25 LocalUploadConfig.conf
  1. qupload表示使用qshell的上传文件命令;
  2. 25表示上传并发数为25,并发数理论上越大传的越快,但由于本地带宽原因,并不是越多越好,那要用多大呢?计算方法:假设你的网络是百兆光纤(即100mbps)、假设你的文件都是小文件图片,平均大小为500kb一张,那么并发数大概为:100*1024/8/500=25.6,大约就是25或26这样就合适;
  3. 最后一个是配置文件名。

配置文件如下

{
    "src_dir": "/Users/bruce/Downloads/qshell-v2.1.8/upyunbackup",
    "bucket": "markdown",
    "check_exists": true,
    "check_size": true
}

其中第一个参数src_dir为本地要上传的文件所在目录的路径(绝对路径),第二个bucket为你要上传到的那个服务器的bucket名称,其他参数都可以不用,具体请参考:https://github.com/qiniu/qshell/blob/master/docs/qupload.md

网易云工具/文档

下载Linux环境工具 nos-cmd,可用于Mac和Linux(Win下载Win版使用方法一样),然后解压,把你的网易云AccessKey和SecretKey填到conf/credentials.properties文件里,然后给其中的tools.sh添加可执行权限chmod u+x tool.sh

批量上传本地文件到网易云

迁移方式1:批量上传

./tool.sh -putfile /Users/bruce/Downloads/testfolder markdown-bucket

其中/Users/bruce/Downloads/testfolder是一个目录,该命令会把这个目录下(不包括该目录本身)的所有文件(包括文件夹)全部原样上传到网易云。markdown-bucket是桶名称,用的时候换成你自己的桶名称即可。

Xnip2018-11-22_21-09-55.jpg

迁移方式二:镜像回源

使用镜像回源迁移即可。

批量下载网易云文件

  1. markdown-bucket桶名称;
  2. -prefix=要下载的文件前缀,注意这个前缀不是我们通常所认为的前缀,它指的是除了后缀名外的部分(要包括目录名),比如你要下载testfolder/sea.jpg,那么你要指定-prefix=estfolder/sea,也就是把jpg去掉的所有部分,所以这个前缀几乎没有用,但你还不能把它去掉,你要下载所有的,就要指定前缀为-prefix=,等号后面什么都不写,但也不能去掉,我试过用*号也无法匹配,加引号也不行。
  3. /Users/bruce/Downloads/backup是指定下载到地的这个目录,如果没有这个目录,会自动创建,如果有这个目录,那就要看它后面那个参数是true还是false,true的话,本地的就会被覆盖,比如我例子就是true。
./tool.sh -getobjects markdown-bucket -prefix= /Users/bruce/Downloads/backup true

腾讯云工具/文档

腾讯云的工具非常多:https://cloud.tencent.com/document/product/436/6242

我们可以选择最简单的可视化桌面管理工具COSBrowser(有Mac和Win版本)
https://cloud.tencent.com/document/product/436/11366

有这个可视化工具,上传下载谁都会,也就不需要我多说,不过腾讯坑爹的是无法看到文件总数,而且,它算文件数量,把文件夹也当成一个文件算的,其他云是不算文件夹的,因为理论上就没有文件夹,像/2018/11/22/abcd.jpg就是一个key名称,斜杠也是名称的一部分,所以腾讯云这么算怪怪的。

Ucloud迁移

直接使用镜像回源功能

Xnip2018-11-25_07-55-10.jpg

QingCloud迁移

直接使用镜像回源功能

Xnip2018-11-25_09-22-35.jpg

打赏

Leave a Reply

avatar

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  Subscribe  
Notify of

扫码在手机查看
iPhone请用自带相机扫
安卓用UC/QQ浏览器扫

七牛/腾讯/网易云/Ucloud/QingCloud对象存储数据迁移(批量上传/下载)