似乎唯一读取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?
用户定义的元数据键帮助我们对上传进行分类,以提供有意义的见解。
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?
用户定义的元数据键帮助我们对上传进行分类,以提供有意义的见解。
GET Object
而不是HEAD Object
,但从响应大小的角度来看,这将不太高效。 - spgHEAD
。@Jay,我使用的另一种方法是在存储桶上设置PUT
的 Lambda 触发器。这些触发器会调用 node.js 代码来执行HEAD
请求,并将元数据存储在 RDS/MariaDB 中,完全规范化和索引以进行适当的查询。 - Michael - sqlbot