Bucket Manage

最終更新日:2025-08-18 15:54:14

バケット管理

1. バケット一覧取得

WosClient.listBuckets を使用して、すべてのバケットを一覧表示できます。以下は、バケットリストを取得する例です。

String endPoint = "https://your-endpoint";
String ak = "*** Provide your Access Key ***";
String sk = "*** Provide your Secret Key ***";
// WosClientインスタンス作成
WosClient wosClient = new WosClient(ak, sk, endPoint, regionName);

// バケット一覧取得
List<WosBucket> buckets = wosClient.listBuckets();
for (WosBucket bucket : buckets) {
    System.out.println("BucketName: " + bucket.getBucketName());
    System.out.println("CreationDate: " + bucket.getCreationDate());
    System.out.println("Endpoint: " + bucket.getEndpoint());
}

注意:返されたバケットリストは、バケット名で辞書順(レキシカル順)にソートされています。

2. バケットの存在確認

WosClient.headBucket を使用して、指定したバケットの存在確認が可能です。以下はバケットの存在を確認する例です。

String endPoint = "https://your-endpoint";
String ak = "*** Provide your Access Key ***";
String sk = "*** Provide your Secret Key ***";
// WosClientインスタンス作成
WosClient wosClient = new WosClient(ak, sk, endPoint, regionName);

boolean exists = wosClient.headBucket("bucketname");

ライフサイクル管理

WOSでは、バケットごとにライフサイクルルールを設定し、ストレージクラスの自動移行や期限切れオブジェクトの自動削除を行うことができます。これにより、ストレージの効率的利用とバケット管理の最適化が可能となります。

異なるプレフィックスを持つオブジェクトに対して複数のルールを定義できます。各ルールには以下の要素が含まれます。

  • ルールID(ユニークである必要があります)
  • オブジェクトプレフィックス(指定したプレフィックスに一致するオブジェクトのみルールの対象)
  • 最新バージョンのオブジェクトに対する移行ポリシー
    • オブジェクト作成後、指定日数後に特定のストレージクラスへ移行、または
    • 特定日付に指定ストレージクラスへ移行
  • 最新バージョンのオブジェクトに対する有効期限ポリシー
    • オブジェクト作成後、指定日数で有効期限、または
    • 特定の有効期限日を指定
  • 有効/無効フラグ

1. ライフサイクルルールの設定

WosClient.setBucketLifecycleConfiguration を使用して、バケットにライフサイクルルールを設定できます。

String endPoint = "https://your-endpoint";
String ak = "*** Provide your Access Key ***";
String sk = "*** Provide your Secret Key ***";

// WosClientインスタンス作成
WosClient wosClient = new WosClient(ak, sk, endPoint, regionName);

final String ruleId = "delete obsoleted files";
final String matchPrefix = "obsoleted/";

LifecycleConfiguration lifecycleConfig = new LifecycleConfiguration();
LifecycleConfiguration.Rule rule = lifecycleConfig.new Rule();
rule.setEnabled(true);
rule.setId(ruleId);
rule.setPrefix(matchPrefix);
LifecycleConfiguration.Expiration expiration = lifecycleConfig.new Expiration();
expiration.setDays(10);

rule.setExpiration(expiration);
lifecycleConfig.addRule(rule);

System.out.println("Setting bucket lifecycle\n");
HeaderResponse headerResponse = wosClient.setBucketLifecycleConfiguration(bucketName, lifecycleConfig);
System.out.println(headerResponse);

2. ライフサイクルルールの参照

WosClient.getBucketLifecycle を使用して、設定されているライフサイクルルールを取得できます。以下はその例です。

String endPoint = "https://your-endpoint";
String ak = "*** Provide your Access Key ***";
String sk = "*** Provide your Secret Key ***";
// WosClientインスタンス作成
WosClient wosClient = new WosClient(ak, sk, endPoint, regionName);

LifecycleConfiguration config = wosClient.getBucketLifecycle("bucketname");

for (Rule rule : config.getRules()) {
    System.out.println(rule.getId());
    System.out.println(rule.getPrefix());
    for (Transition transition : rule.getTransitions()) {
        System.out.println(transition.getDays());
        System.out.println(transition.getStorageClass());
    }
    System.out.println(rule.getExpiration() != null ? rule.getExpiration().getDays() : "");
}

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

WosClient.deleteBucketLifecycle を使用して、バケットのライフサイクルルールをすべて削除できます。以下はライフサイクルルールを削除する例です。

String endPoint = "https://your-endpoint";
String ak = "*** Provide your Access Key ***";
String sk = "*** Provide your Secret Key ***";
// WosClientインスタンス作成
WosClient wosClient = new WosClient(ak, sk, endPoint, regionName);

wosClient.deleteBucketLifecycle("bucketname");