如何根据标签检索Amazon S3上的使用情况?

时间:2017-06-08 03:01:22

标签: amazon-web-services amazon-s3 aws-sdk

我们只为S3中存储的所有数据实现一个存储桶,来自不同组织的数据很多。我们可以通过'foo'或'bar'标签从'foo'组织或'bar'组织中检索用法吗?

用例:

我们为客户部署了一个名为'foo'和'bar'的移动应用程序,这个用于上传文件(图片和视频)的应用程序包含'foo'标签,以及基于组织的'bar'标签。我们对应用程序使用相同的API,在S3中使用相同的存储桶。所以我只想获得“foo”标签或“bar”标签使用的总存储量等指标。所以我可以监控'foo'或'bar'已经使用N GB。

3 个答案:

答案 0 :(得分:2)

Amazon S3的对象级标记为introduced in March 2017。它允许:

  • 按标签进行生命周期管理(例如转移到亚马逊冰川)
  • 访问控制政策

根据对象级别的代码提供指标。

您需要编写自己的脚本来检索对象列表并根据标记计算存储空间。但是,似乎在对象上检索标记的唯一方法是为每个单独的对象请求。这意味着您将进行大量的API调用。

另一种方法是对每个对象使用object metadata。元数据由list-objects API调用返回,因此每1000个对象只需要一次API调用(这是返回数据的分页大小)。

最后,您可以将对象存储在单独的存储区中,这样就可以使用Amazon CloudWatch指标。 Amazon S3将指标发送到Amazon CloudWatch,以获取对象数量和存储空间量。

答案 1 :(得分:1)

根据当前文档,您只能将桶标记用于成本分配报告。

http://docs.aws.amazon.com/AmazonS3/latest/dev/BucketBilling.html

但是,对于CloudWatch,您可以使用带有对象标记过滤器的度量标准配置,该过滤器仅返回标记为S3对象的度量标准。它可能仅限于请求指标。您需要使用新的S3控制台,说明如下:http://docs.aws.amazon.com/AmazonS3/latest/user-guide/configure-metrics.html

请参阅http://docs.aws.amazon.com/AmazonS3/latest/dev/metrics-configurations.html

另外http://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html

答案 2 :(得分:0)

您可以创建一个Lambda函数,该函数在s3中的上传事件上执行,可以将有关该对象的元数据记录到Dynamodb或mysql等数据库中。然后在s3存储桶中删除事件的单独lambda函数。然后,您可以在数据库上运行分析,而不是尝试对s3使用大量API调用。

http://docs.aws.amazon.com/lambda/latest/dg/with-s3.html