AWS S3元数据所有键

3
似乎唯一读取s3对象上的用户定义元数据的方法是使用head-object。
AWS_PROFILE=development aws s3api head-object --bucket "xxx-development" --key 'my-object-key'
s3api list-objects可以让您获取存储桶中的所有对象,包括使用--query筛选键中所需模式,但它不提供与这些对象关联的用户定义元数据。
AWS_PROFILE=development aws s3api list-objects --bucket "xxx-development" --query 'Contents[?contains(Key, 'original')]'
是否有一种方法可以获取所有对象和相关的用户定义元数据,而无需枚举所有对象并迭代每个对象并对其执行head-object?
用户定义的元数据键帮助我们对上传进行分类,以提供有意义的见解。
1个回答

3

谢谢。是的,那是我目前考虑的方法。 我认为那应该是最有效的方法? - Jay
是的,您的解决方案是最有效的。另一个可能的解决方案是使用 GET Object 而不是 HEAD Object,但从响应大小的角度来看,这将不太高效。 - spg
你肯定想要在这种情况下坚持使用 HEAD。@Jay,我使用的另一种方法是在存储桶上设置 PUT 的 Lambda 触发器。这些触发器会调用 node.js 代码来执行 HEAD 请求,并将元数据存储在 RDS/MariaDB 中,完全规范化和索引以进行适当的查询。 - Michael - sqlbot
谢谢Michael。这是一个很好的提示。我们已经为未来添加了类似的功能。我们将有用的统计数据作为CloudWatch指标推送,Datadog提供了一个良好的界面来绘制和查看指标。 但我喜欢将其推送到数据库中,这样我就可以对数据进行分区,并将属性与单个资产关联起来,以便在未来需要批量重新处理文件时使用。 - Jay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接