問題描述
PutBucketLifecycle請求的請求體XML中存在多條Rule,每條Rule之間指定了重疊的首碼,且指向的生命週期規則存在衝突。
問題原因
您提交了PutBucketLifecycle請求,請求體XML中包含多條Rule,每條Rule之間指定了重疊的首碼,且指向的生命週期規則存在衝突,以下為常見的衝突操作:
您可以針對一個Object同時配置轉儲為IA和Archive儲存類型的規則,但轉儲為Archive儲存類型的時間必須晚於轉儲為IA儲存類型的時間。
指定Object的到期時間必須晚於轉儲為IA或者Archive儲存類型的時間。
如果配置的規則不滿足上述要求,則請求報錯。
問題樣本
以下請求中配置了3條Rule:
第一條Rule指定的首碼是
test,並指定與首碼匹配的Object距離最後修改時間120天后轉換為低頻訪問類型IA。第二條Rule指定的首碼是
test/log,並指定與首碼匹配的Object距離最後修改時間60天后轉換為歸檔類型Archive。第三條Rule指定的首碼是
test/log/cache,並指定與首碼匹配的Object距離最後修改時間30天后刪除。
以上三條Rule指定的首碼存在重疊,而指定轉儲為IA的天數是120,轉儲為Archive的天數是60,指定刪除的天數是30,導致請求報錯。
PUT /?lifecycle HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Content-Length: 336
Date: Mon , 6 May 2019 15:23:20 GMT
Authorization: OSSqn6q**************:77Dv****************
<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration>
<Rule>
<ID>rule1</ID>
<Prefix>test</Prefix>
<Status>Enabled</Status>
<Transition>
<Days>120</Days>
<StorageClass>IA</StorageClass>
</Transition>
</Rule>
<Rule>
<ID>rule2</ID>
<Prefix>test/log</Prefix>
<Status>Enabled</Status>
<Transition>
<Days>60</Days>
<StorageClass>Archive</StorageClass>
</Transition>
<Rule>
<ID>rule3</ID>
<Prefix>test/log/cache</Prefix>
<Status>Enabled</Status>
<Expiration>
<Days>30</Days>
</Expiration>
</Rule>
</LifecycleConfiguration>解決方案
不同Rule之間存在重疊首碼時,確保設定合理的轉儲時間和到期刪除時間。
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: OSS qn6q**************:77Dv**************** <?xml version="1.0" encoding="UTF-8"?> <LifecycleConfiguration> <Rule> <ID>rule1</ID> <Prefix>test</Prefix> <Status>Enabled</Status> <Transition> <Days>30</Days> <StorageClass>IA</StorageClass> </Transition> </Rule> <Rule> <ID>rule2</ID> <Prefix>test/log</Prefix> <Status>Enabled</Status> <Transition> <Days>60</Days> <StorageClass>Archive</StorageClass> </Transition> <Rule> <ID>rule3</ID> <Prefix>test/log/cache</Prefix> <Status>Enabled</Status> <Expiration> <Days>120</Days> </Expiration> </Rule> </LifecycleConfiguration>通過OSS管理主控台配置生命週期規則,避免手動構造請求體。