バケットはオブジェクトを格納するためのコンテナーです。すべてのオブジェクトはバケットに格納する必要があります。バケットはアルファベット順にリスト表示されます。現在の 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];関連ドキュメント
バケットをリスト表示するための API 操作の詳細については、「ListBuckets (GetService)」をご参照ください。
OSSClient インスタンスの初期化の詳細については、「OSSClient インスタンスの初期化」をご参照ください。