使用Python Boto进行S3桶标记" InvalidArgument"

时间:2018-04-04 12:43:06

标签: amazon-s3 tags boto bucket ceph

使用Python Boto将标签设置为S3存储桶时遇到问题。 我连接到我自己的Ceph存储器并试试这个:

conn = boto.connect_s3(
            aws_access_key_id=ACCESS_KEY,
            aws_secret_access_key=SECRET_KEY,
            host=RGW_HOST,
            port=RGW_PORT,
            is_secure=RGW_SECURE,
            calling_format=boto.s3.connection.OrdinaryCallingFormat(),
)
new_id = '10'
bucket = conn.get_bucket(new_id)
tag_set = TagSet()
tag_set.add_tag(key='a', value='b')
tags = Tags()
tags.add_tag_set(tag_set)
bucket.set_tags(tags)

但我有一个错误:

    boto.exception.S3ResponseError: S3ResponseError: 400 Bad Request
<?xml version="1.0" encoding="UTF-8"?><Error><Code>InvalidArgument</Code><BucketName>ipo36</BucketName><RequestId>tx000000000000000000035-005ac4c3cf-1063bb-default</RequestId><HostId>1063bb-default-default</HostId></Error>

任何人都知道我做错了什么?

1 个答案:

答案 0 :(得分:0)

这些天我建议使用boto3而不是boto 2。

以下是一些有用的代码:

import boto3
client = boto3.client('s3', region_name='ap-southeast-2')
tag={'TagSet':[{'Key': 'Department', 'Value': 'Finance'}]}
response = client.put_bucket_tagging(Bucket='my-bucket', Tagging=tag)