バケットは、Object Storage Service (OSS) に保存されているオブジェクトのコンテナです。 OSS内のすべてのオブジェクトはバケットに含まれています。 バケツはアルファベット順にリストされています。 すべてのリージョンで現在のAlibaba Cloudアカウントに属し、特定の条件を満たすバケットを一覧表示できます。
Alibaba Cloudアカウント内のすべてのバケットを一覧表示する
次のサンプルコードは、現在のAlibaba Cloudアカウント内のすべてのリージョンのバケットを一覧表示する方法の例を示しています。
OSSGetServiceRequest * getService = [OSSGetServiceRequest new];
// 現在のアカウントに属するすべてのバケットを一覧表示します。
OSSTask * getServiceTask = [クライアント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);
}
nilを返します。}];
名前に特定のプレフィックスが含まれるバケットの一覧表示
次のサンプルコードは、現在のAlibaba Cloudアカウント内のすべてのリージョンで、名前にサンプルプレフィックスが含まれているバケットを一覧表示する方法の例を示しています。
OSSGetServiceRequest * getService = [OSSGetServiceRequest new];
getService.prefix = @ "example";
OSSTask * getServiceTask = [クライアント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);
}
nilを返します。}];
マーカーで指定されたバケットの後に名前がアルファベット順であるバケットを一覧表示する
次のサンプルコードは、現在のAlibaba Cloudアカウント内のすべてのリージョンで、名前がexamplebucketという名前のバケットの後にアルファベット順になっているバケットを一覧表示する方法の例を示しています。
OSSGetServiceRequest * getService = [OSSGetServiceRequest new];
getService.marker = @ "examplebucket";
OSSTask * getServiceTask = [クライアント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);
}
nilを返します。}];
特定の数のバケットを一覧表示する
次のサンプルコードは、現在のAlibaba Cloudアカウント内のすべてのリージョンのバケットを一覧表示し、一覧表示できるバケットの最大数を500に設定する方法の例を示しています。
OSSGetServiceRequest * getService = [OSSGetServiceRequest new];
// 現在のアカウントに属するすべてのバケットを一覧表示します。 一覧表示できるバケットの最大数を500に設定します。 最大値は 1000 です。 デフォルト値 :100。
getService.maxKeys = 500;
OSSTask * getServiceTask = [クライアント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);
}
nilを返します。}];
参考資料
バケットを一覧表示するために呼び出すAPI操作の詳細については、「ListBuckets (GetService) 」をご参照ください。