批量将S3桶的根目录中的文件移动到一个文件夹中(但不包括其他文件夹)

0

【以下的问题经过翻译处理】 看似简单的要求,却遇到了一些麻烦。 基本上我有很多客户端信息的文件夹,每个客户端下都有很多文件(有些超过 500,000 个文件),所以接下来我现在按时间来分类。 因此,我有一个简单的 yyyy-mm 设置,并且运行良好,因此为了清理,我有一个存档文件夹,并希望移动每个客户端根目录中的所有文件(但当然不是 2021-12、2022-01 文件夹内容) in) 到该存档文件夹。

因此,在正常环境中,我可以转到该根目录,move * archive/并完成。 但他们在S3,这就有点困难了。 我正在测试,但我不知道如何获得它。 当然,我的想法是; aws s3 mv s3://bucket/folder1/ s3://bucket/folder/archive* 但自然不好。 这个错误很奇怪; 致命错误:调用 HeadObject 操作时发生错误(404):键“documents/client1/”不存在(但当然存在),如果我添加 --recursive,它确实有效(但其他文件夹也有效) )

我看到有一个包含,所以我想也许我可以找到一种方法来添加 --exclude 2021-12/ 2022-01

任何帮助表示赞赏。

profile picture
专家
已提问 5 个月前6 查看次数
1 回答
0

【以下的回答经过翻译处理】 从 CLI 考虑使用 --recursive --exclude "/" 这应该可以防止复制键中带有 / 的任何对象,您可以使用该键来指示子文件夹。 请注意,这将处理源位置中的每个对象,因为它将需要确定键是否包含排除模式。

更多信息请参见使用排除和包含过滤器https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则