すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:ライフサイクルルールを設定

最終更新日:Feb 21, 2024

Object Storage Service (OSS) バケットにアップロードされるすべてのデータが頻繁にアクセスされるわけではありません。 めったにアクセスされないデータは、コンプライアンスとアーカイブの目的でコールドストレージに保存されます。 複数のOSSバケットに保存されているデータを同時に削除する場合は、ossutil lifecycleコマンドを実行して、データの最終変更時刻に基づいてライフサイクルルールを設定できます。 ストレージコストを削減するために、コールドデータとホットデータを別々に保存することを推奨します。 ホットデータとコールドデータを別々に保存するには、データアクセスモードを自動的に監視し、コールドデータを識別して、コールドデータのストレージクラスを変更するようにOSSを設定します。 このシナリオでは、データの最終アクセス時刻に基づいてライフサイクルルールを設定することもできます。

使用上の注意

  • このトピックのサンプルコマンドラインは、64ビットLinuxシステムに基づいています。 他のシステムの場合は、を交換します。対応するバイナリ名を持つコマンドの /ossutil64。 詳細は、「ossutilコマンドリファレンス」をご参照ください。

  • ライフサイクルルールの詳細については、「概要」をご参照ください。

  • OSSでは、ライフサイクルルールを使用してのみCloudBoxバケットからオブジェクトを削除できます。 オブジェクトのストレージクラスは変更できません。

ライフサイクルルールの追加または変更

次の手順を実行して、ライフサイクルルールを追加または変更できます。

  1. ローカルファイルを作成し、ライフサイクルルールをXML形式でファイルに設定します。

  2. ossutilを使用して、ローカルファイルからライフサイクル設定を読み取り、指定されたバケットに設定を追加します。

  • コマンド構文

    . /ossutil64ライフサイクル -- メソッドput oss:// bucketname local_xml_file

    次の表に、上記のコマンドのパラメーターを示します。

    パラメーター

    説明

    bucketname

    ライフサイクルルールを追加または変更するバケットの名前。

    local_xml_ファイル

    ライフサイクルルールが設定されているローカルファイルの名前。 例: localfile.xml

  • 重要

    バケットに複数のライフサイクルルールを追加できます。 各ルールは、一意のIDによって識別される。 追加するライフサイクルルールのIDが既存のライフサイクルルールのIDと同じである場合、HTTPステータスコード409が返されます。

    1. ローカルコンピューターにlocalfile.xmlという名前のファイルを作成し、ビジネス要件に基づいてライフサイクルルールをファイルに書き込みます。

      サンプルライフサイクルルール:

      • 例1

        次のコードは、2つのライフサイクルルールの例を示します。 この最初のルールは、examplebucketバケット内のすべてのオブジェクトに対して有効です。 これは、コマンドのPrefixフィールドが空のままであることを示します。 最初のルールに一致するオブジェクトは、オブジェクトが最後に変更されてから365日後に削除されます。 2番目のルールは、プレフィックスがtest /のオブジェクトに有効です。 これは、コマンドのPrefixフィールドがtest /に設定されていることを示します。 2番目のルールに一致するオブジェクトのストレージクラスは、オブジェクトが最後に変更されてから30日後にアーカイブに変更されます。

        ライフサイクルルールでサポートされているストレージクラスについては、「オブジェクトのストレージクラスを自動的に変換するライフサイクルルールの設定」をご参照ください。

        <?xml version="1.0" encoding="UTF-8"?>
        <LifecycleConfiguration>
          <Rule>
            <ID>test-rule1</ID>
            <Prefix></Prefix>
            <Status>Enabled</Status>
            <Expiration>
              <日> 365</日>
            </Expiration>
          </Rule>
          <Rule>
            <ID>test-rule2</ID>
            <Prefix>test/</Prefix>
            <Status>Enabled</Status>
            <Transition>
              <Days>30</Days>
              <StorageClass>Archive</StorageClass>
            </Transition>
          </ルール>
        </LifecycleConfiguration> 
      • 例2

        次のコードは、ライフサイクルルールの例を示しています。 ライフサイクルルールは、examplebucketバケット内のすべてのオブジェクトに対して有効になります。 これは、コマンドのPrefixフィールドが空のままであることを示します。 このルールは、最終変更時刻が12月30日より前のオブジェクトの有効期限が20129ことを指定します。

        <?xml version="1.0" encoding="UTF-8"?>
        <LifecycleConfiguration>
          <Rule>
            <ID>test-rule0</ID>
            <Prefix></Prefix>
            <Status>Enabled</Status>
            <Expiration>
              <CreatedBeforeDate>2019-12-30T00:00:00.000Z</CreatedBeforeDate>
            </Expiration>
          </ルール>
        </LifecycleConfiguration> 
      • 例3

        次のコードは、ライフサイクルルールの例を示しています。 ライフサイクルルールは、examplebucketバケット内のバージョン管理が有効なオブジェクトに対して有効になります。 このルールでは、オブジェクトが最後に変更されてから10日後にオブジェクトのストレージクラスが低頻度アクセス (IA) に変更され、オブジェクトが最後に変更されてから60日後に以前のバージョンのオブジェクトのストレージクラスがアーカイブに変更され、オブジェクトが最後に変更されてから90日後に以前のバージョンのオブジェクトが削除されます。

        <?xml version="1.0" encoding="UTF-8"?>
        <LifecycleConfiguration>
          <Rule>
            <ID>test-rule3</ID>
            <Prefix></Prefix>
            <Status>Enabled</Status>
            <Transition>
              <Days>10</Days>
              <StorageClass>IA</StorageClass>
            </Transition>
            <NoncurrentVersionTransition>
              <NoncurrentDays>60</NoncurrentDays>
              <StorageClass>Archive</StorageClass>
            </NoncurrentVersionTransition>
            <NoncurrentVersionExpiration>
              <NoncurrentDays>90</NoncurrentDays>
            </NoncurrentVersionExpiration>
          </ルール>
        </LifecycleConfiguration> 
      • 例4

        次のコードは、ライフサイクルルールの例を示しています。 ライフサイクルルールは、プレフィックスがdata /のオブジェクトに対して有効になります。 このルールでは、プレフィックスにdata /が付いたオブジェクトのストレージクラスは、オブジェクトが最後にアクセスされてから200日後にIAに変更されます。 また、このルールは、オブジェクトが再度アクセスされた場合に、ログがプレフィックスされたオブジェクトのストレージクラスが依然としてIAであることを指定します。

        <?xml version="1.0" encoding="UTF-8"?>
        <LifecycleConfiguration>
          <Rule>
            <ID>test-rule4</ID>
            <Prefix>data/</Prefix>
            <Status>Enabled</Status>
            <Transition>
              <日> 200</日>
              <StorageClass>IA</StorageClass>
              <IsAccessTime>true</IsAccessTime>
              <ReturnToStdWhenVisit>false</ReturnToStdWhenVisit>
            </Transition>    
          </ルール>
        </LifecycleConfiguration> 

  1. 次のコマンドを実行して、examplebucketバケットにライフサイクルルールを追加します。

    . /ossutil64ライフサイクル -- メソッドput oss:// examplebucket localfile.xml

    次のコードに似た出力が表示される場合、ライフサイクルルールが追加されます。

    0.299514経過

ライフサイクルルールの照会

  • コマンド構文

    . /ossutil64ライフサイクル -- メソッドget oss:// bucketname [local_xml_file]

    次の表に、上記のコマンドのパラメーターを示します。

    パラメーター

    説明

    bucketname

    ライフサイクルルールを照会するバケットの名前。

    local_xml_ファイル

    ライフサイクルルールが保存されているローカルファイルの名前。 例: localfile.xml このパラメーターを設定しない場合、ライフサイクルルールは画面に直接表示されます。

  • 次のコマンドを実行して、examplebucketバケットのライフサイクルルールを照会します。

    . /ossutil64ライフサイクル -- メソッドget oss:// examplebucket localfile.xml

    次のコードのような出力が表示される場合、examplebucketバケットのライフサイクルルールが取得され、localfile.xmlファイルに書き込まれます。

    0.212407経過

ライフサイクルルールの削除

  • コマンド構文

    . /ossutil64ライフサイクル -- メソッドdelete oss:// bucketname
  • 次のコマンドを実行して、examplebucketバケットのライフサイクルルールを削除します。

    . /ossutil64ライフサイクル -- メソッドdelete oss:// examplebucket

    次のコードのような出力が表示された場合、localfile.xmlバケットのライフサイクルルールは削除されます。

    0.530750経過

一般的なオプション

ossutilを使用して別のリージョンにあるバケットに切り替える場合は、コマンドに -eオプションを追加して、指定したバケットがあるリージョンのエンドポイントを指定します。 ossutilを使用して別のAlibaba Cloudアカウントに属するバケットに切り替える場合、コマンドに -iオプションを追加して、指定されたアカウントのAccessKey IDを指定し、コマンドに -kオプションを追加して、指定されたアカウントのAccessKeyシークレットを指定します。

たとえば、次のコマンドを実行して、中国 (杭州) リージョンにあり、別のAlibaba Cloudアカウントが所有するexamplebucketという名前のバケットのライフサイクルルールを設定できます。

. /ossutil64ライフサイクル -- メソッドput oss:// examplebucket localfile.xml -e oss-cn-hangzhou.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA **** -k 67DLVBkH7EamOjy2W5RVAHUY9H ****

同期コマンドに使用できるその他の一般的なオプションの詳細については、「オプションの表示」をご参照ください。