17

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

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

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

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

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

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/ .

和一些更多的排列。

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

谢谢 !!

4

1 回答 1

21

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

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

注意:--exclude "*" 应该在 --include "---" 之前,反向操作不会打印任何内容,因为它将在 'include' 之后执行 'exclude' )。

于 2014-08-06T00:18:54.897 回答