我们只为S3中存储的所有数据实现一个存储桶,来自不同组织的数据很多。我们可以通过'foo'或'bar'标签从'foo'组织或'bar'组织中检索用法吗?
用例:
我们为客户部署了一个名为'foo'和'bar'的移动应用程序,这个用于上传文件(图片和视频)的应用程序包含'foo'标签,以及基于组织的'bar'标签。我们对应用程序使用相同的API,在S3中使用相同的存储桶。所以我只想获得“foo”标签或“bar”标签使用的总存储量等指标。所以我可以监控'foo'或'bar'已经使用N GB。
答案 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调用。