我正在查看aws cli的文档,我找不到将某些目录结构中的唯一文件复制到其他存储桶的方法,其中" flattened"结构(我想要一个目录及其中的所有文件)。
例如
/a/b/c/1.pg
/a/2.jpg
/a/b/3.jpg
我想要在不同的桶中:
/x/1.jpg
/x/2.jpg
/x/3.jpg
我错过了什么或不可能吗? 你知道我怎么能这样做?
答案 0 :(得分:1)
假设您在系统上配置了aws cli并假设两个存储桶位于同一区域。 您可以做的是首先使用以下命令将s3存储桶下载到本地计算机:
aws s3 sync s3://originbucket /localdir/
发布此内容,使用find命令将所有文件放入一个目录
find /localdir/ -type f -exec mv {} /anotherlocaldir/
最后,您可以再次将文件上传到s3!
aws s3 sync /anotherlocaldir/ s3://destinationbucket
答案 1 :(得分:1)
您不需要在本地下载文件,如另一个答案所示。相反,您可以编写一个shell脚本或执行以下操作的内容:
答案 2 :(得分:0)
以下是一些供您参考的示例:
aws s3 sync /a/b/c/1.pg s3:// bucketname /
aws s3 sync /a/2.jpg s3:// bucketname /
aws s3 sync /a/b/3.jpg s3:// bucketname /
要将目录的所有内容同步到S3存储桶:
aws s3 sync / directoryPath / s3:// bucketname /
AWS参考网址:http://docs.aws.amazon.com/cli/latest/reference/s3/sync.html