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

Object Storage Service:バケットのリスト表示 (iOS SDK)

最終更新日:Nov 30, 2025

バケットはオブジェクトを格納するためのコンテナーです。すべてのオブジェクトはバケットに格納する必要があります。バケットはアルファベット順にリスト表示されます。現在の Alibaba Cloud アカウントに属するすべてのリージョンのバケットをリスト表示し、特定の条件に基づいてフィルター処理できます。

注意事項

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

    説明

    リスト表示されるバケットは、初期化設定のエンドポイントで指定されたリージョンのものです。

すべてのバケットのリスト表示

次のコードは、現在の Alibaba Cloud アカウント配下にあるすべてのリージョンのすべてのバケットをリスト表示する方法の例を示しています。

OSSGetServiceRequest * getService = [OSSGetServiceRequest new];
// 現在のアカウント内のすべてのリージョンのすべてのバケットをリスト表示します。    
OSSTask * getServiceTask = [client getService:getService];
[getServiceTask continueWithBlock:^id(OSSTask *task) {
    if (!task.error) {
        OSSGetServiceResult * result = task.result;
        NSLog(@"buckets: %@", result.buckets);
        NSLog(@"owner: %@, %@", result.ownerId, result.ownerDispName);
        [result.buckets enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
            NSDictionary * bucketInfo = obj;
            NSLog(@"BucketName: %@", [bucketInfo objectForKey:@"Name"]);
            NSLog(@"CreationDate: %@", [bucketInfo objectForKey:@"CreationDate"]);
            NSLog(@"Location: %@", [bucketInfo objectForKey:@"Location"]);
        }];
    } else {
        NSLog(@"get service failed, error: %@", task.error);
    }
    return nil;
}];
// 同期ブロッキングを実装して、タスクが完了するのを待ちます。
// [getServiceTask waitUntilFinished];

指定されたプレフィックスを持つバケットのリスト表示

次のコードは、現在の Alibaba Cloud アカウント配下にあるすべてのリージョンで、プレフィックスが "example" のバケットをリスト表示する方法の例を示しています。

OSSGetServiceRequest * getService = [OSSGetServiceRequest new];
getService.prefix = @"example";

OSSTask * getServiceTask = [client getService:getService];
[getServiceTask continueWithBlock:^id(OSSTask *task) {
    if (!task.error) {
        OSSGetServiceResult * result = task.result;
        NSLog(@"buckets: %@", result.buckets);
        NSLog(@"owner: %@, %@", result.ownerId, result.ownerDispName);
        [result.buckets enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
            NSDictionary * bucketInfo = obj;
            NSLog(@"BucketName: %@", [bucketInfo objectForKey:@"Name"]);
            NSLog(@"CreationDate: %@", [bucketInfo objectForKey:@"CreationDate"]);
            NSLog(@"Location: %@", [bucketInfo objectForKey:@"Location"]);
        }];
    } else {
        NSLog(@"get service failed, error: %@", task.error);
    }
    return nil;
}];
// 同期ブロッキングを実装して、タスクが完了するのを待ちます。
// [getServiceTask waitUntilFinished];

指定されたマーカー以降のバケットのリスト表示

次のコードは、現在の Alibaba Cloud アカウント配下にあるすべてのリージョンで、名前がアルファベット順で "examplebucket" より後にあるバケットをリスト表示する方法の例を示しています。

OSSGetServiceRequest * getService = [OSSGetServiceRequest new];
getService.marker = @"examplebucket";

OSSTask * getServiceTask = [client getService:getService];
[getServiceTask continueWithBlock:^id(OSSTask *task) {
    if (!task.error) {
        OSSGetServiceResult * result = task.result;
        NSLog(@"buckets: %@", result.buckets);
        NSLog(@"owner: %@, %@", result.ownerId, result.ownerDispName);
        [result.buckets enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
            NSDictionary * bucketInfo = obj;
            NSLog(@"BucketName: %@", [bucketInfo objectForKey:@"Name"]);
            NSLog(@"CreationDate: %@", [bucketInfo objectForKey:@"CreationDate"]);
            NSLog(@"Location: %@", [bucketInfo objectForKey:@"Location"]);
        }];
    } else {
        NSLog(@"get service failed, error: %@", task.error);
    }
    return nil;
}];
// 同期ブロッキングを実装して、タスクが完了するのを待ちます。
// [getServiceTask waitUntilFinished];

指定された数のバケットのリスト表示

次のコードは、現在の Alibaba Cloud アカウント配下にあるすべてのリージョンのバケットをリスト表示し、返されるバケットの数を最大 500 に制限する方法の例を示しています。

OSSGetServiceRequest * getService = [OSSGetServiceRequest new];
// 現在のアカウントのすべてのリージョンのすべてのバケットをリスト表示します。バケットの数を 500 に制限します。デフォルト:100。最大:1000。
getService.maxKeys = 500;
    
OSSTask * getServiceTask = [client getService:getService];
[getServiceTask continueWithBlock:^id(OSSTask *task) {
    if (!task.error) {
        OSSGetServiceResult * result = task.result;
        NSLog(@"buckets: %@", result.buckets);
        NSLog(@"owner: %@, %@", result.ownerId, result.ownerDispName);
        [result.buckets enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
            NSDictionary * bucketInfo = obj;
            NSLog(@"BucketName: %@", [bucketInfo objectForKey:@"Name"]);
            NSLog(@"CreationDate: %@", [bucketInfo objectForKey:@"CreationDate"]);
            NSLog(@"Location: %@", [bucketInfo objectForKey:@"Location"]);
        }];
    } else {
        NSLog(@"get service failed, error: %@", task.error);
    }
    return nil;
}];
// 同期ブロッキングを実装して、タスクが完了するのを待ちます。
// [getServiceTask waitUntilFinished];

関連ドキュメント