查找具有特定路径前缀的资产的S3聚合内容长度

时间:2018-05-17 15:55:35

标签: amazon-s3 aws-sdk-ruby

我在S3中存储的客户资产是一个与帐户相关的值,作为每个资产路径中的第一个元素,例如

  • 帐户-1 /媒体/视频/ 382476581823.mp4
  • 帐户-1 /图像/ 2348752.png

我想查找帐户所有资产消耗的存储总量 - 上述示例中路径前缀为“account-1”的所有资产。我有一个工作解决方案,它迭代S3查询返回的ObjectSummary对象,但它对我的需求来说太慢了,因为它为每个对象执行HTTP请求。

我想知道是否可以在S3查询中执行类似于您可能对DynamoDB执行的计算 - 请求S3执行计算并返回总计。

注意:使用aws-sdk-ruby

2 个答案:

答案 0 :(得分:0)

我应该提到我们使用旧的1.x版本的aws-sdk-ruby,所以我的回答可能与您在当前版本的S3 sdk中找到的不同。

我能够使用AWS :: S3 :: Client#list_objects方法并迭代这些结果。虽然这不是我所希望的(计算仍在本地执行),但至少它避免了在迭代S3 :: Bucket#对象调用的结果时调用的S3媒体的HTTP HEAD请求。 / p>

答案 1 :(得分:0)

S3发布了一项新功能S3 Select,它允许您使用SQL查询S3存储桶。这是发布公告:

https://aws.amazon.com/blogs/aws/s3-glacier-select/