从S3复制文件而不下载包含它们的目录

时间:2018-05-30 01:29:15

标签: amazon-web-services amazon-s3

我正在尝试下载S3目录中的所有文本文件而不下载包含它们的目录:

aws s3 cp s3://mybucket/ . --recursive --exclude "*" --include "mydirectory*/*txt"

我想下载mydirectory中包含的所有文本文件。

不幸的是我只知道这个目录名称的第一部分,因此我必须使用通配符,这意味着我无法将它附加到查询的mybucket部分。

这意味着当我下载文本文件时,它们会进入mydirectory。有没有办法只下载文本文件,而不下载包含它们的目录?

1 个答案:

答案 0 :(得分:1)

仅AWS CLI无法实现您的目标,因为它将为任何嵌套目录重新创建目录结构。

您可以编写一个首先列出文件的shell命令,然后使用aws s3 cp以不同的名称复制单个文件,但是shell脚本难以维护。

或者,您可以使用其目录复制所有文件,然后使用mv命令将所有文件移回公共目录,类似于:

(是的,你不关心扩展,但它是一个类似的概念。)

或者,如果您想在一个命令中执行此操作...编写您自己的Python脚本来为您完成所有操作!