错误403使用boto和python为s3 bucket配置生命周期时被禁止



我正在用boto以编程方式创建和设置s3存储桶。

我可以创建桶、对象。。并在对象上书写。。。

我想为bucket配置一个生命周期,但当我运行下面的代码时,我得到了这个异常:

boto.exception.S3响应错误:S3ResponseError:403禁止使用代码SignatureDoesNotMatch。

lifecycle = Lifecycle()
lifecycle.add_rule(
'rulename',
prefix='/',
status='Enabled',
expiration=Expiration(days=1)
)
bucket = s3.get_bucket('mybucket')

这个调试结果可以帮助回答问题。

回复:'HTTP/1.1 403 Forbidden\r\n'

标题:x-amz-request-id:tx000000000000000000027-0059db8d59-39289-default

标题:内容长度:196

header:接受范围:字节

header:内容类型:application/xml

标题:日期:2017年10月9日星期一14:53:13 GMT

追踪(最近一次通话):

中的文件"pyth.py",第28行

bucket.configure_lifecycle(lifecycle)

中的文件"/usr/lib/python2.7/site packages/boto/s3/backet.py",第1366行

configure_lifecycle

response.status, response.reason, body)

boto.exception.S3响应错误:S3响应错误:403禁止

SignatureDoesNotMatch

tx000000000000000000027-0059db8d59-39289故障

39289默认默认

bucket.configure_lifecycle(lifecycle)

经过一些研究,我可以说这个错误是由不支持生命周期策略的实际ceph版本(10.2.7 Jowel)引起的

$ceph--版本

ceph版本10.2.7-27.el7cp(e0d2d4f2fac9d95a26486121257255260bbec8d5)

最新更新