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

很多用户使用七牛过程中有将资源从一个空间复制到另外一个空间的需求,这种情况下可用我们的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文件列表,格式如下:

photo-2.jpg 109787  FvaTV7fZz6G_1W6WyzQdktMbqPuv    14526031733113853   image/jpeg
photo3.jpg  256148  Fq3vt4smenbZ_ev-iba2Yukx5d9B    14526031741765437   image/jpeg
photo4.jpg  194277  FtxVybqCmEm_ZWEJ6l2vg-qKbzWh    14526031747456153   image/jpeg
photo5.jpg  131862  FslN6hs8puP_ksS6KYCl0OxgcWoO    14526031770721477   image/jpeg

5.而我们只需要得到最前面的文件key就可以了,可以使用一条awk字符处理命令就可以了
cat cp.txt | awk '{print $1}' >cpp.txt
这样就在当前目录生成了一个如下只包含文件的key的txt文件cpp.txt

photo-2.jpg
photo3.jpg
photo4.jpg
photo5.jpg

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 gcafcc to confirm operation: gcafcc
All Copyed!

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

你可能感兴趣的:(七牛将空间资源复制到另外一个空间详解)