从 S3 存储桶下载模式匹配条目

Posted

技术标签:

【中文标题】从 S3 存储桶下载模式匹配条目【英文标题】:Downloading pattern matched entries from S3 bucket 【发布时间】:2014-09-25 00:58:10 【问题描述】:

我有一个 S3 存储桶,其中存储了几个具有以下格式的日志文件 index.log.yyyy-mm-dd-01 index.log.yyyy-mm-dd-02 . . .

yyyy 表示年份,mm 表示月份,dd 表示日期。

现在我只想下载其中的几个。我看到了Downloading an entire S3 bucket?。如果我想下载整个存储桶,这篇文章的公认答案绝对可以正常工作,但是如果我想做一些模式匹配,我应该怎么做?我尝试了以下命令,但没有奏效:

aws s3 sync s3://mybucket/index.log.2014-08-01-* .
aws s3 sync 's3://mybucket/index.log.2014-08-01-*' .

我还尝试使用 s3cmd 进行下载,使用 http://fosshelp.blogspot.in/2013/06 文章的 POINT 7 和 http://s3tools.org/s3cmd-sync。以下是我运行的命令:

s3cmd -c myconf.txt get --exclude '*.log.*' --include '*.2014-08-01-*' s3://mybucket/ .
s3cmd -c myconf.txt get --exclude '*.log.*' --include '*.2014-08-01-*' s3://mybucket/ .

还有一些其他的排列方式。

谁能告诉我为什么没有发生模式匹配?或者如果我需要使用任何其他工具。

谢谢!!

【问题讨论】:

【参考方案1】:

找到问题的解决方案。虽然我不知道为什么其他命令不起作用..解决方案如下:

aws s3 sync s3://mybucket . --exclude "*" --include "*.2014-08-01-*"

注意:--exclude "*" 应该在 --include "---" 之前,反向操作不会打印任何内容,因为它将在 'include' 之后执行 'exclude'(现在无法找到引用我读过这个)。

【讨论】:

以上是关于从 S3 存储桶下载模式匹配条目的主要内容,如果未能解决你的问题,请参考以下文章

如何在同一 S3 位置复制和粘贴多个对象以生成 ObjectCreated 通知?

从 Amazon S3 创建表时,Athena 如何将数据与正确的字段匹配?

Boto3 从 S3 存储桶下载所有文件

在iOS Swift中不使用AWS SDK在Amazon S3存储桶中上传的背景图像(背景模式)

Fastlane 与 Amazon S3 匹配“拒绝访问”

从S3存储桶下载百万个文件