概述

七牛云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 可以到控制台右上角的个人面板,密钥管理里找到

AccessKey 及 SecretKey

### 格式: qshell account AccessKey SecretKey SelfCustomName
### 列如:
➜  qshell account AccessKey SecretKey warnerwu

将已被回收Bucket文件同步到新建Bucket

下载已被回收Bucket下所有文件列表到文件

进入到「本地数据备份路径」如
➜  cd ~/qiniu/migration
执行以下命令, 下载已被回收Bucket下所有文件列表到文件

下载已被回收Bucket下所有文件列表到文件

➜  migration qshell listbucket warner -o warner-data-list.txt
下载到已被回收Bucket下所有文件列表到文件具体内容类似如下图所示

下载到已被回收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拷贝到新建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
下载完成后会生成一个下载日志文件, 它是默认生成当前用户家目录下

下载Bucket列表文件到本地备份文件夹

查看下载日志文件

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


wumoxi
431 声望40 粉丝

如果不曾让我见过阳光,至少我还可以忍受黑暗