Object Storage Service (OSS) バケットにアップロードされるすべてのデータが頻繁にアクセスされるわけではありません。 めったにアクセスされないデータは、コンプライアンスとアーカイブの目的でコールドストレージに保存されます。 複数のOSSバケットに保存されているデータを同時に削除する場合は、ossutil lifecycleコマンドを実行して、データの最終変更時刻に基づいてライフサイクルルールを設定できます。 ストレージコストを削減するために、コールドデータとホットデータを別々に保存することを推奨します。 ホットデータとコールドデータを別々に保存するには、データアクセスモードを自動的に監視し、コールドデータを識別して、コールドデータのストレージクラスを変更するようにOSSを設定します。 このシナリオでは、データの最終アクセス時刻に基づいてライフサイクルルールを設定することもできます。
使用上の注意
オブジェクトの最終変更時刻または最終アクセス時刻に基づいてライフサイクルルールを設定する前に、この機能に慣れていることを確認してください。 詳細については、「最終変更時刻に基づくライフサイクルルール」および「最終アクセス時刻に基づくライフサイクルルール」をご参照ください。
このトピックのサンプルコマンドラインは、64ビットLinuxシステムに基づいています。 他のシステムの場合は、を交換します。対応するバイナリ名を持つコマンドの /ossutil64。 詳細は、「ossutilコマンドリファレンス」をご参照ください。
ライフサイクルルールの詳細については、「概要」をご参照ください。
OSSでは、ライフサイクルルールを使用してのみCloudBoxバケットからオブジェクトを削除できます。 オブジェクトのストレージクラスは変更できません。
ライフサイクルルールの追加または変更
次の手順を実行して、ライフサイクルルールを追加または変更できます。
ローカルファイルを作成し、ライフサイクルルールをXML形式でファイルに設定します。
ossutilを使用して、ローカルファイルからライフサイクル設定を読み取り、指定されたバケットに設定を追加します。
コマンド構文
. /ossutil64ライフサイクル -- メソッドput oss:// bucketname local_xml_file
次の表に、上記のコマンドのパラメーターを示します。
パラメーター
説明
bucketname
ライフサイクルルールを追加または変更するバケットの名前。
local_xml_ファイル
ライフサイクルルールが設定されているローカルファイルの名前。 例:
localfile.xml
例
重要バケットに複数のライフサイクルルールを追加できます。 各ルールは、一意のIDによって識別される。 追加するライフサイクルルールのIDが既存のライフサイクルルールのIDと同じである場合、HTTPステータスコード409が返されます。
ローカルコンピューターに
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>
次のコマンドを実行して、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 ****
同期コマンドに使用できるその他の一般的なオプションの詳細については、「オプションの表示」をご参照ください。