全部產品
Search
文件中心

Object Storage Service:0014-00000082

更新時間:Jun 19, 2024

問題描述

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管理主控台配置生命週期規則,避免手動構造請求體。

相關文檔