七牛云存储—将空间资源复制到另外一个空间详解
很多用户使用七牛过程中有将资源从一个空间复制到另外一个空间的需求,这种情况下可用我们的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.txt4.上步操作后会在当前目录下生成一个名为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/jpeg5.而我们只需要得到最前面的文件key就可以了,可以使用一条awk字符处理命令就可以了
cat cp.txt | awk '{print $1}' >cpp.txt这样就在当前目录生成了一个如下只包含文件的key的txt文件cpp.txt
photo-2.jpg
photo3.jpg
photo4.jpg
photo5.jpg6.使用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