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

Object Storage Service:ライフサイクル (Android SDK)

最終更新日:Nov 30, 2025

Object Storage Service (OSS) にアップロードされたデータの中には、アクセス頻度は低いものの、コンプライアンスやアーカイブの要件によりコールドストレージに保存する必要があるものがあります。不要になったデータを一括で削除して、ストレージコストを削減したい場合があるかもしれません。このような場合、オブジェクトの最終更新日時にもとづいてライフサイクルルールを設定し、オブジェクトのストレージクラスを定期的にホットからコールドに変更したり、オブジェクトを削除したりすることで、ストレージコストを削減できます。

注意事項

  • ライフサイクルルールを設定するには oss:PutBucketLifecycle 権限、ライフサイクルルールを表示するには oss:GetBucketLifecycle 権限、すべてのライフサイクルルールを削除するには oss:DeleteBucketLifecycle 権限が必要です。詳細については、「RAM ユーザーへのカスタムアクセスポリシーの付与」をご参照ください。

  • このトピックのサンプルコードを実行する前に、カスタムドメイン名や Security Token Service (STS) を使用するなどの方法で OSSClient インスタンスを作成する必要があります。詳細については、「初期化 (Android SDK)」をご参照ください。

バケットのライフサイクルルールの設定

次のサンプルコードは、examplebucket という名前のバケットに対して、オブジェクトの最終更新日時にもとづくライフサイクルルールを設定する方法の例を示しています。ライフサイクルルールを変更するには、「1 つ以上のライフサイクルルールの設定を変更する方法」をご参照ください。

PutBucketLifecycleRequest request = new PutBucketLifecycleRequest();
request.setBucketName("examplebucket");

BucketLifecycleRule rule1 = new BucketLifecycleRule();
// ルール ID とファイルプレフィックスを設定します。
rule1.setIdentifier("1");
rule1.setPrefix("A");
// ライフサイクルルールを実行するかどうかを指定します。値が true の場合、OSS はルールを定期的に実行します。値が false の場合、OSS はルールを無視します。
rule1.setStatus(true);
// 最終更新日時から 200 日後にオブジェクトを失効させます。
rule1.setDays("200");
// 30 日後にオブジェクトをアーカイブストレージクラスに移行します。
rule1.setArchiveDays("30");
// 3 日後に未完了のマルチパートアップロードを失効させます。
rule1.setMultipartDays("3");
// 15 日後にオブジェクトを低頻度アクセス (IA) ストレージクラスに移行します。
rule1.setIADays("15");

BucketLifecycleRule rule2 = new BucketLifecycleRule();
rule2.setIdentifier("2");
rule2.setPrefix("B");
rule2.setStatus(true);
rule2.setDays("300");
rule2.setArchiveDays("30");
rule2.setMultipartDays("3");
rule2.setIADays("15");

ArrayList<BucketLifecycleRule> lifecycleRules = new ArrayList<BucketLifecycleRule>();
lifecycleRules.add(rule1);
lifecycleRules.add(rule2);
request.setLifecycleRules(lifecycleRules);
OSSAsyncTask task = oss.asyncPutBucketLifecycle(request, new OSSCompletedCallback<PutBucketLifecycleRequest, PutBucketLifecycleResult>() {
    @Override
    public void onSuccess(PutBucketLifecycleRequest request, PutBucketLifecycleResult result) {
        OSSLog.logInfo("code::"+result.getStatusCode());

    }

    @Override
    public void onFailure(PutBucketLifecycleRequest request, ClientException clientException, ServiceException serviceException) {
        OSSLog.logError("error: "+serviceException.getRawMessage());

    }
});

task.waitUntilFinished();

バケットのライフサイクルルールのクエリ

次のコードは、examplebucket という名前のバケットのライフサイクルルールを表示する方法を示しています。

GetBucketLifecycleRequest request = new GetBucketLifecycleRequest();
request.setBucketName("examplebucket");
OSSAsyncTask task = oss.asyncGetBucketLifecycle(request, new OSSCompletedCallback<GetBucketLifecycleRequest, GetBucketLifecycleResult>() {
    @Override
    public void onSuccess(GetBucketLifecycleRequest request, GetBucketLifecycleResult result) {
         ArrayList<BucketLifecycleRule> list = result.getlifecycleRules();
         for (BucketLifecycleRule rule : list){
             OSSLog.logInfo("info: " + rule.getIdentifier());
         }
    }

    @Override
    public void onFailure(GetBucketLifecycleRequest request, ClientException clientException, ServiceException serviceException) {
        OSSLog.logError("error: "+serviceException.getRawMessage());

    }
});
task.waitUntilFinished();

バケットのライフサイクルルールの削除

次のコードは、examplebucket という名前のバケットのすべてのライフサイクルルールをクリアする方法を示しています。1 つ以上のライフサイクルルールを削除する方法については、「1 つ以上のライフサイクルルールを削除する方法」をご参照ください。

DeleteBucketLifecycleRequest request = new DeleteBucketLifecycleRequest();
request.setBucketName("examplebucket");
OSSAsyncTask task = oss.asyncDeleteBucketLifecycle(request,"examplebucket" new OSSCompletedCallback<DeleteBucketLifecycleRequest, DeleteBucketLifecycleResult>() {
    @Override
    public void onSuccess(DeleteBucketLifecycleRequest request, DeleteBucketLifecycleResult result) {
        OSSLog.logInfo("code :  "+result.getStatusCode());

    }

    @Override
    public void onFailure(DeleteBucketLifecycleRequest request, ClientException clientException, ServiceException serviceException) {
        OSSLog.logError("error: "+serviceException.getRawMessage());

    }
});
task.waitUntilFinished();

関連ドキュメント

  • ライフサイクルルールを管理するために使用される完全なサンプルコードについては、GitHub をご参照ください。

  • ライフサイクルルールを設定するために呼び出すことができる API 操作の詳細については、「PutBucketLifecycle」をご参照ください。

  • ライフサイクルルールをクエリするために呼び出すことができる API 操作の詳細については、「GetBucketLifecycle」をご参照ください。

  • ライフサイクルルールを削除するために呼び出すことができる API 操作の詳細については、「DeleteBucketLifecycle」をご参照ください。

  • OSSClient インスタンスを初期化する方法の詳細については、「初期化」をご参照ください。