【发布时间】:2012-09-25 18:03:41
【问题描述】:
似乎我只能在 S3 的存储桶级别使用标签。这在某种程度上似乎是有道理的,因为您可能只会在这种宏观层面上进行计费。但是,我可以看到一些标记用例,以便不同的人为同一个存储桶中的不同对象计费。
您可以标记单个 S3 对象吗?
【问题讨论】:
-
你说的是成本分配标签吗?
标签: amazon-s3 amazon-web-services tagging billing
似乎我只能在 S3 的存储桶级别使用标签。这在某种程度上似乎是有道理的,因为您可能只会在这种宏观层面上进行计费。但是,我可以看到一些标记用例,以便不同的人为同一个存储桶中的不同对象计费。
您可以标记单个 S3 对象吗?
【问题讨论】:
标签: amazon-s3 amazon-web-services tagging billing
也许区分成本分配标签和用标签标记对象很重要。引用the Amazon documentation:“成本分配标签只能用于标记桶。有关用于标记对象的标签的信息,请参阅Object Tagging”
这些很像用户自己定义的元数据键值对:
【讨论】:
现在,我们可以为每个对象添加标签。 使用 AWS S3API,
aws s3api put-object-tagging --bucket bucket_name --key key_name --tagging 'TagSet=[{Key=type,Value=text1}]'
我们还可以使用 python API 为对象添加标签。以下代码 sn -p 将标签添加到存储桶中的所有对象。如果您只想将标签添加到一个对象,则可以传递对象名称。
session = aws_session.set_aws_session()
s3 = boto3.Session(aws_access_key_id, aws_secret_access_key)
bucketName = 'bucketName'
bucket = s3.Bucket(bucketName)
object_list = bucket.objects.all()
s3 = session.client('s3')
tagging = {'TagSet' : [{'Key': 'CONF', 'Value':'No'}]}
for obj in object_list:
s3.put_object_tagging(
Bucket = bucketName,
Key = obj.key,
Tagging = tagging
)
【讨论】:
S3 标签是 2016 年 11 月 29 日发布的新功能。标签可以添加到存储桶和单个对象上。 S3 标签是令人兴奋的功能,因为您可以保留业务分类数据,甚至控制访问。release of s3 tag feature 可以使用浏览器中的新 s3 控制台添加 s3 标签。要从浏览器添加标签,假设您在新的 s3 控制台上。选择项目 --> 更多 --> 添加标签。
Aws S3 cli 当前不支持标签功能。 Aws s3 api 提供了在对象上添加和读取标签的方法。 add tag using s3 api,get tag using s3 api
【讨论】:
对象标记是一项新功能,于 2016 年 12 月宣布。来自the announcement:
使用 S3 对象标记,您可以管理和控制对 Amazon S3 对象的访问。 S3 对象标签是应用于 S3 对象的键值对,可以在对象的生命周期内随时创建、更新或删除。有了这些,您将能够创建身份和访问管理 (IAM) 策略、设置 S3 生命周期策略和自定义存储指标。然后这些对象级标签可以在后台管理存储类之间的转换和过期对象。
另见:S3 » Objects » Object Tagging
目前,您似乎无法search by tags,或者对象标记会影响计费。
【讨论】:
我认为您不能像通常标记资源一样标记 S3 中的单个项目。
但是,您可以将元数据添加到 S3 中的项目以识别它们。然后,您可以通过以下任一方式报告具有不同类型的项目: - 翻阅桶中的项目(显然相当慢)并整理您想要的有关它们的任何信息 - 在您选择的数据库中存储一个外部元数据,然后您可以使用它来运行报告。例如有多少不同类型的项目,总大小等。当然,您要报告的任何内容都必须首先添加到数据库中
不过,我肯定会对任何更好的解决方案感兴趣!
【讨论】:
这不是出于 AWS 端计费的目的“标记”,但您可以使用对象元数据来存储您想要的对象数据。
http://docs.amazonwebservices.com/AmazonS3/latest/dev/UsingMetadata.html
【讨论】:
根据documentation你只能标记桶:
成本分配标记允许您标记 S3 存储桶,以便您可以更多 根据项目或其他标准轻松跟踪他们的成本..
这与您在管理控制台和 SDK 文档中看到的一致。
当然,您可以使用文件夹/对象元数据自行进行更精细的“标记”,但我认为您会找到更好的解决方案。
【讨论】: