如何为Amazon S3存储桶中的每个文件夹执行命令(如副本)?

时间:2014-08-27 15:52:09

标签: bash amazon-web-services amazon-s3 aws-cli

我有一个大约有一千个文件夹的S3存储桶。在每个文件夹中,我想将文件复制到一个级别的新文件夹中。例如:

foreach (folder in myBucket){
  cp folder/myFile.abc folder/myNewFolder/myFile.abc;
}

如何在S3中执行这种一次性逻辑?

1 个答案:

答案 0 :(得分:0)

我最后只使用了bash和Amazon's own CLI

BUCKET=myBucketName
for dir in $(aws s3 ls $BUCKET | awk '{print $2}'); do
    aws s3 cp s3://$BUCKET/${dir}myFile.abc s3://$BUCKET/${dir}myNewFolder/myFile.abc
done

aws s3 ls不包含任何有用的标志来修改其输出,因此我使用awk来切断" PRE"随目录输出一起提供。

将上述内容放在myScript中并使用bash myScript执行。