使用前缀、后缀或正则表达式在 S3 存储桶中搜索键?

xyb*_*rek 2 java amazon-s3 amazon-web-services

我有一个包含一百万个对象的 S3 存储桶,每个对象的键彼此完全不同,根本没有标准。

我想知道是否可以使用适用于 Java 的 Amazon S3 开发工具包搜索特定键模式并返回这些对象?

例如,我可以使用

  • 字首
  • 后缀
  • 或正则表达式

使用 S3 搜索密钥的可能方法有哪些?

Joh*_*ein 6

您可以ListObjects()使用给定的Prefix。Amazon S3 不支持通过后缀或正则表达式列出。

Prefix 包含对象的完整路径,因此2020/06/10/foo.txt可以找到具有Key 的对象,其前缀为2020/06/10/,但不能找到前缀foo

Java命令是: ListObjects()

另请参阅:在 Amazon S3 对象上执行操作 - 适用于 Java 的 AWS 开发工具包

对于数百万个对象,列出您的对象(即使有前缀)可能会很慢,因为每个 API 调用最多将返回 1000 个对象。

或者,您可能希望使用Amazon S3 Inventory,它可以提供包含所有对象列表的每日或每周 CSV 文件。