python - 如何检查S3 bucket是否有标签

标签 python amazon-web-services amazon-s3 boto3

我尝试检查现有的 s3 桶是否有标签,如果桶没有标签,将添加标签,我试过下面的代码

for region in region_list:
    s3 = boto3.resource('s3', region)
    s3_client = boto3.client('s3', region)
        for bucket in s3.buckets.all():
            s3_bucket = bucket
            s3_bucket_name = s3_bucket.name
            response = s3_client.get_bucket_tagging(Bucket=s3_bucket_name)
            tagset = response['TagSet']
                if len(response['TagSet'])==0:
                    print "s3 bucket not have tags, adding tags"
                else:
                    pass

但低于错误

Traceback (most recent call last):
File "C:\Python27\ec2info.py", line 235, in <module>
response = s3_client.get_bucket_tagging(Bucket=s3_bucket_name)
File "C:\Python27\lib\site-packages\botocore\client.py", line 314, in 
_api_call
return self._make_api_call(operation_name, kwargs)
File "C:\Python27\lib\site-packages\botocore\client.py", line 612, in 
_make_api_call
raise error_class(parsed_response, operation_name)
ClientError: An error occurred (NoSuchTagSet) when calling the 
GetBucketTagging operation: The TagSet does not exist

我哪里做错了,检查 s3 桶是否有标签的正确方法是什么

预先感谢您的帮助

最佳答案

因为 get_bucket_tagging 在没有标签时抛出 NoSuchTagSet。捕获异常并创建标签。此外,不要遍历区域,无论您连接到哪个区域端点,您都将获得所有存储桶。

参见:NoSuchTagSet when calling the GetBucketTagging operation

from botocore.exceptions import ClientError

for bucket in s3.buckets.all():
    s3_bucket = bucket
    s3_bucket_name = s3_bucket.name
    try:
        response = s3_client.get_bucket_tagging(Bucket=s3_bucket_name)
        #print response
        #tagset = response['TagSet']
    except ClientError:
        print s3_bucket_name, "does not have tags, adding tags"

关于python - 如何检查S3 bucket是否有标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50376650/

相关文章:

python - 如何将中间量的数据传递给子进程?

mysql - EC2 AMAZON Linux - 从本地机器连接到 MySQL 数据库

haskell - 使用 Amazonka 和 Servant 从 S3 存储桶流式传输

amazon-s3 - Logstash:使用 s3 时如何使用过滤器来匹配文件名

Python 日志记录到 Azure

python - 如何对csv表中的数据进行行到列的转置?

python - BeautifulSoup4 find_all() 在 extract() 或 decompose() 之后表现奇怪

amazon-web-services - AWS EMR 上的 Spark 独立模式

amazon-web-services - AWS SAM:构建失败错误:Docker无法访问。 Docker需要运行才能在容器内构建

ios - 使用 NSURLSession 在后台上传文件时无法保持恒定速度