概述
七牛云OSS对象存储bucket创建后有一个「外链默认域名」这个域名, 如果没有记错的2018上半年没有回收这个概念,
2018下半年隐隐约约记录收到过「【七牛云】测试域名回收通知」邮件, 出现这个域名后也没有太在意, 因为是个人使用, 怎么着都成!
后来用得着静态文件存储时就接着新建bucket, 接二连三的收到「测试域名回收通知」回收后最大的影响就是「整个Bucket基本所有功能都不能使用了, 都不能使用了, 都不能使用了~」
下载什么的你就可劲点吧, 额~~~, 好吧!所有外部引用文件都不可用了, 你之前的所有引用又都想使用之前那些文件吧, 好了, 下载下来这个文件将其上传到阿里云对象存储OSS完美解决问题, 请看下面迁移过程, 可能会对你有所帮助~
建立一个同区下的新Bucket
您需要先新建一个同区域存储空间,会分配一个新的测试域名到新空间
下载qshell
关于qshell的下载请移步 Github, 关于qshell的配置请参考 命令行工具(qshell), 最好将qshell添加系统环境变量
设置qshell登录账号
查看 qshell account
命令使用方式
➜ qshell account --help
Get/Set AccessKey and SecretKey
Usage:
qshell account [<AccessKey> <SecretKey> <Name>] [flags]
Flags:
-h, --help help for account
-w, --overwrite overwrite account or not when account exists in local db, by default not overwrite
Global Flags:
-C, --config string config file (default is $HOME/.qshell.json)
-d, --debug debug mode
-L, --local use current directory as config file path
-v, --version show version
添加 qshell account
登录账号
AccessKey: 访问密钥
SecretKey: 安全密钥
SelfCustomName: 此处填写自定义的用户名(这个name就是qshell存存您登陆的账户名,可以随便设置的,比如qiniuaccount 或者 account_1 等等)
AccessKey 及 SecretKey 可以到控制台右上角的个人面板,密钥管理里找到
### 格式: qshell account AccessKey SecretKey SelfCustomName
### 列如:
➜ qshell account AccessKey SecretKey warnerwu
将已被回收Bucket文件同步到新建Bucket
下载已被回收Bucket下所有文件列表到文件
进入到「本地数据备份路径」如
➜ cd ~/qiniu/migration
执行以下命令, 下载已被回收Bucket下所有文件列表到文件
➜ migration qshell listbucket warner -o warner-data-list.txt
下载到已被回收Bucket下所有文件列表到文件具体内容类似如下图所示
将下载到的文件的第一列复制到一个最终文件列表文件
➜ migration cat warner-data-list.txt | awk '{print $1}' > warner-data-list-final.txt
文件列表到文件内容如下:
![]()
将文件列表文件将旧Bucket文件列表文件拷贝到新建Bucket文件列表
➜ migration qshell batchcopy warner warnerwu-migration -i warner-data-list-final.txt
执行以上命令七牛云会有一个安全机制就是让你输入验证码
到此文件也就会从旧Bucket拷贝或者说同步到新建Bucket列表啦~
下载已同步到建新Bucket文件到本地备份文件夹
关于如何下更详细讲解可以移步Github下载说明文档
添加一个下载配置文件
文件名如
warnerwu-migration-download.conf
dest_dir: 为本地备份文件绝对路径文件夹, 不过这个绝对路径要提交建立好
bucket: 要下载Bucket下文件所在的Bucket名称
{
"dest_dir" : "/Users/warnerwu/qiniu/migration/warnerwu-migraition",
"bucket" : "warnerwu-migration"
}
下载Bucket列表文件到本地备份文件夹
-c: 10 参数 -c
代表是要使用多个 goroutine
进行下载Bucket列表下的文件, 我们都知道七牛后端全站 Go
语言开发, 对头, 你当前使用的 qshell
也是使用 Go
语言编写
➜ migration qshell qdownload -c 10 warnerwu-migration-download.conf
下载完成后会生成一个下载日志文件, 它是默认生成当前用户家目录下
查看下载日志文件
tail 默认显示最后10行tail -n 24 可以指定显示行数
➜ migration tail /Users/warnerwu/.qshell/qdownload/e65c69a164299e2f7045ea3b7a3d18d7/e65c69a164299e2f7045ea3b7a3d18d7.log
2019/02/18 22:14:33.548 [I] Download 2017.02.17.attrbute.01.png => /Users/warnerwu/qiniu/migration/warnerwu-migraition/2017.02.17.attrbute.01.png success 1785.53KB/s
2019/02/18 22:14:33.548 [I] -------Download Result-------
2019/02/18 22:14:33.548 [I] Total: 26
2019/02/18 22:14:33.548 [I] Skipped: 0
2019/02/18 22:14:33.548 [I] Exists: 0
2019/02/18 22:14:33.548 [I] Success: 26
2019/02/18 22:14:33.548 [I] Update: 0
2019/02/18 22:14:33.548 [I] Failure: 0
2019/02/18 22:14:33.548 [I] Duration: 2.205420428s
2019/02/18 22:14:33.548 [I] -----------------------------
可以看到这个下载还是很快的只用了
2
秒左右的时间, 并且所有的下载都成功了!
查看下载文件
最后
你可以将文件上传到阿里云对象存储OSS上, 它不存在「测试域名」的问题, 不过你要先购买对象存储OSS, 不贵40G好像是9块多钱的样子并且是一年!
希望本文对你的工作和学习有所帮助如果觉得还不错怎么感谢我呢? 妈呀! 点赞啊!
Good Luck! from warnerwu at 2019.02.18 PM