根据文件名模式将S3存储桶中的文件移动到文件夹

时间:2020-03-06 20:21:45

标签: amazon-s3 aws-cli

我有一个S3存储桶,其中包含数千个文件,文件名始终与模式{hostname}。{contenttype}。{yyyyMMddHH} .zip匹配。我想创建一个脚本,该脚本每天运行一次,以根据文件名中的年和月将这些文件移动到文件夹中。

如果我尝试以下aws-cli命令

aws s3 mv s3://mybucket/*.202001* s3://mybucket/202001/

我收到以下错误:

fatal error: An error occurred (404) when calling the HeadObject operation: Key "*.202001*" does not exist

有没有可以按计划运行的aws-cli命令来实现这一目标?

1 个答案:

答案 0 :(得分:3)

我认为前进的道路将是通过--filter parameter used in S3 CLI commands

对于您的情况,

aws s3 mv s3://mybucket/ s3://mybucket/202001/ --recursive --exclude "*" --include "*.202001*"

应该可以解决问题。

要安排CLI命令每天运行,我认为您可以参考On AWS, run an AWS CLI command daily