2013-04-05 28 views
3

我想标记我上传到S3的密钥。在下面,我只是从一个字符串创建一个文件。一旦我有他们的钥匙,我不知道如何标记文件。我已经尝试了Tag以及TagSet。如何将标签添加到boto(Amazon S3)中的某个密钥?

from boto.s3.bucket import Bucket 
from boto.s3.key import Key 
from boto.s3.tagging import Tag, TagSet 

k = Key(bucket) 
k.key = 'foobar/somefilename' 
k.set_contents_from_string('some data in file') 

Tag(k, 'the_tag') 

回答

2

至于我可以在文档中看到,一个setTags-method仅在一个桶水平,而不是个别键可用。因此,您无法为上传的文件设置不同的标签,但您必须在包含的存储桶上执行此操作。

+0

这是正确的。 S3仅支持存储桶级别的标签,而不支持单个对象。这些标记主要用于成本分配和跟踪,如http://docs.aws.amazon.com/awsaccountbilling/latest/about/getbill.html#allocation中所述 – garnaat 2013-04-05 11:31:47

2

虽然S3“标签”仅位于存储桶级别,但存储桶中的每个关键字都可以具有与其关联的任意“元数据”,这些关键字对本身就是关键值对。请参阅boto documentation

k.set_metadata('key', 'value') 
value = k.get_metadata('key') # prints 'value' 
相关问题