【问题标题】:Unable to use filename wildcards with s4cmd when trying to copy or sync from Amazon S3尝试从 Amazon S3 复制或同步时,无法在 s4cmd 中使用文件名通配符
【发布时间】:2017-08-02 21:42:40
【问题描述】:

我正在尝试使用 s4cmd 使用据称受支持的通配符从 AWS S3 存储桶复制文件。

例如,我想将所有以2017-03-12 开头的 AWS S3 日志文件同步到我的本地当前目录:

s4cmd sync s3://myapp-logs/prod/2017-03-12-19* .

这导致 所有 文件被复制并且通配符显然被忽略:

s3://myapp-logs/prod/2015-10-08-19-24-42-92BBBE9DA93917D1 => ./prod/2015-10-08-19-24-42-92BBBE9DA93917D1
s3://myapp-logs/prod/2015-10-08-19-30-09-BE8D5466FBB5DFD1 => ./prod/2015-10-08-19-30-09-BE8D5466FBB5DFD1
...

无论我的通配符格式如何,我都可以重现此故障。

通配符按预期工作的唯一时间是当我使用cp 命令时,例如:

s4cmd cp s3://myapp-logs/prod/2017-03-12-19* // Note that cp doesn't support copying to a local directory

s4cmd cp s3://mybucket/mystuff/N*.jpg s3://mybuckettest/

【问题讨论】:

  • 为什么是s4cmd?你不能用aws s3 CLI 达到同样的效果吗?

标签: amazon-web-services amazon-s3 command-line aws-cli s3cmd


【解决方案1】:

你不能使用aws s3 CLI吗?

aws s3 sync s3://myapp-logs . --exclude "*" --include "*prod/2017-03-12-19*"

应该可以。如果没有看到use-of-exclude-and-include-filters,修改命令。

【讨论】:

  • 我现在在 aws s3 cli 上使用 s4cmd(和 s3cmd)的原因是因为 s4cmd 提供了一些附加功能,例如改进的同步(通过 s4cmd dsync),我正在尝试使用更少的工具。 但是,您确实提醒我aws s3 通过过滤器实现了类似通配符的功能,所以谢谢!顺便问一下,aws s3 sync s3://myapp-logs . --exclude "*" --include "prod/2017-03-12-19*" 是否应该等同于aws s3 sync s3://myapp-logs/prod . --exclude "*" --include "2017-03-12-19*"
猜你喜欢
  • 1970-01-01
  • 2021-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-31
  • 2016-07-31
  • 1970-01-01
  • 2013-08-20
相关资源
最近更新 更多