Cha*_*dra 7 python amazon-s3 amazon-web-services 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
Run Code Online (Sandbox Code Playgroud)
但低于错误
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
Run Code Online (Sandbox Code Playgroud)
我在这里做错的地方,检查 s3 存储桶是否有标签的正确方法是什么
在此先感谢您的帮助
因为在没有标签时get_bucket_tagging抛出NoSuchTagSet。捕获异常并创建标签。此外,不要循环遍历区域,无论您连接到哪个区域端点,您都将获得所有存储桶。
请参阅:调用 GetBucketTagging 操作时的 NoSuchTagSet
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"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5614 次 |
| 最近记录: |