注册 登录
  • 欢迎访问Sharezer Blog

将七牛空间资源复制到另外一个空间

Default sharezer 24次浏览 已收录 0个评论

很多用户使用七牛过程中有将资源从一个空间复制到另外一个空间的需求,这种情况下可用我们的sdk先list出所有的文件然后在批量复制,但是使用同步工具进行同步的方法是最快的,下面详解这种方法:

  • 1.下载七牛的同步工具qshell http://developer.qiniu.com/docs/v6/tools/qshell.html
  • 2.登录到当前账户下 qshell account <AK> <SK>
  • 3.使用listbucket命令列举出需要复制的当前空间https://github.com/qiniu/qshell/wiki/listbucket
    ​ 使用的命令 qshell listbucket <Bucket> [<Prefix>] <ListBucketResultFile>
    ​ 本例中的命令如下:
    qshell listbucket copytest1 cp.txt
  • 4.上步操作后会在当前目录下生成一个名为cp.txt的list文件列表,格式如下:
2018-08-26-160939.jpg   17640   Fop4HA_ZZf6Xoj-TXgH3sqJMOi8V    15352998086254931   image/jpeg  0   
2018-08-26-161042.jpg   31964   Fk5xbSt-oZHuSEZD17t5fLAfy7Rg    15352998425186147   image/jpeg  0   
2018-08-26-161112.jpg   16617   Flal4vq9WXZGk6_dqpSVbt1K5UMx    15352998728700485   image/jpeg  0   
2018-08-26-161254.jpg   9075    FvSDeiwAOjt7HpJQPAx_NlrDRMs4    15352999742876833   
  • 5.而我们只需要得到最前面的文件key就可以了,可以使用一条awk字符处理命令就可以了
    cat cp.txt | awk '{print $1}' >cpp.txt
    这样就在当前目录生成了一个如下只包含文件的key的txt文件cpp.txt
2018-08-26-160939.jpg
2018-08-26-161042.jpg
2018-08-26-161112.jpg
2018-08-26-161254.jpg
2018-08-26-161342.png
  • 6.使用batchcopy命令将文件同步到需要复制的空间里面https://github.com/qiniu/qshell/wiki/batchcopy
    这里直接给出命令,将copytest1空间文件复制到copytest2空间
    qshell batchcopy copytest1 copytest2 cpp.txt
    实际过程中可能会让确认操作,相应确认下就可以了,参考如下:
    并输入确认码
~/tools » qshell batchcopy copytest1 copytest2 cpp.txt                                                                            
<DANGER> Input dgbgdg to confirm operation: dgbgdg

至此文件就成功从copytest1空间文件复制到copytest2空间了,当然复制过程中也可以实现对文件的命名操作,具体可以参考https://github.com/qiniu/qshell/wiki/batchcopy


Sharezer , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明将七牛空间资源复制到另外一个空间
喜欢 (0)
[liangshaoze@sina.cn]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址