问题描述
PutBucketLifecycle请求的请求体XML中Rule
节点下存在多个Prefix
子节点。
问题原因
您发起了Amazon S3兼容的PutBucketLifecycle请求,但是请求体XML中Rule
节点下存在多个Prefix
子节点,而该接口要求每个Rule
节点下只能包含一个Prefix
子节点。
问题示例
以下Amazon S3兼容的PutBucketLifecycle请求体XML中Rule
节点下包含了2个Prefix
子节点。
PUT /?lifecycle HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Content-Length: 336
Date: Mon , 6 May 2019 15:23:20 GMT
Authorization: AWS Wnjl3fg9fdv8fg4b****:Phuu8bBhS8dsff2a****
<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration>
<Rule>
<ID>rule</ID>
......
<Prefix>tmp/</Prefix>
<Prefix>private/</Prefix>
</Rule>
</LifecycleConfiguration>
解决方案
确保请求中每个
Rule
节点下仅包含一个Prefix
子节点。如果您需要设置多个Prefix
子节点,您需要对应增加Rule
节点。Prefix
子节点用于指定规则所适用的前缀。如果指定了Prefix,则表示此规则仅适用于Bucket中与Prefix匹配的Object。
如果Prefix置空,则表示此规则适用于Bucket中的所有Object。
通过Amazon S3兼容的SDK发起请求。
通过OSS管理控制台配置生命周期规则,避免手动构造请求体。
相关文档
文档内容是否对您有帮助?