因为一些原因需要迁移七牛云的空间存储,这边是在迁移的工程中碰到的一下问题,这边就做个记录...
本文以Mac来实践的这边记录也是以Mac为维度记录,window、Linux系统请自行看官方文档,下文每个步骤都带有对应的官方文档。
1、空间授权
如果是不同账号,需要将空间授权给另一个账号;如果已是同个账号请看一下步。
授权操作
2、安装qshell工具
下载
下载qshell文件,下载完成后修改文件名,如果没权限则给qshell权限chmod +x qshell
。
配置全局
方式一:zshrc文件
如果是使用zsh
,则将下面的文件路径写入~/.zshrc
文件中
# 只需要qshell 所在的文件夹路径即可,不需要带上自身文件名
export PATH=$PATH:/home/jemy/tools
# 自动补全功能
if [ $commands[qshell] ]; then
source <(qshell completion zsh)
fi
完成后执行
source ~/.zshrc
方式二:bashrc文件
如果是使用bash
,则将下面的文件路径写入~/.bashrc
export PATH=$PATH:qshell所在的文件夹路径
# 只需要qshell 所在的文件夹路径即可,不需要带上自身文件名
export PATH=$PATH:/home/jemy/tools
# 自动补全功能
if [ $commands[qshell] ]; then
source <(qshell completion zsh)
fi
完成后执行
source ~/.bashrc
配置账户
qshell account ak sk name
# 或者
qshell account -- ak sk name
ak: AccessKey
sk: SecretKey
name: 登录七牛用的账号,比如邮箱
3、导出空间文件列表
列举空间中文件列表
使用一下命令导出文件:
qshell listbucket Bucket -o filename
导出后的数据格式如:
/public/images/icon_goods_thumb_empty_300.png 2296 FiA8VjxJe-KbEEyl8v6fzneKY-Wg 15562658918620348 image/png 0
/public/images/nakeIco.png 507 FkGnMl4IoEBmpb4vNxu7Nr2kMK0y 15572844255436758 image/png 0
/public/upload/201903304d494d9a3a551e9add0e72bdd0ac2639.png 27963 FlOGcD9024UdUhPtF4moCCvkVEhQ 15539169271149012 image/png 0
根据这边导出的数据格式不符合后续使用的需要对数据进行格式化,最后需要的数据如下:
/public/images/icon_goods_thumb_empty_300.png
/public/images/nakeIco.png
/public/upload/201903304d494d9a3a551e9add0e72bdd0ac2639.png
这边就不提供脚本去格式化了,请自行实现脚本,或者直接使用shell 来数据格式即可。
4、文件进行移动到新空间
batchcopy
使用一下命令,进行空间迁移:
qshell batchcopy --force --failure-list failure-list oldBucket newBucket -i filename
oldBucket
:原本的空间
newBucket
:需要迁移的空间
filename
:上一步导出的空间文件列表
不同账号下不同存储区域的数据迁移方式
空间授权的操作文档
跨区域同步参考文档
参考
七牛数据从一个桶转移到另一个桶