Bucket adalah wadah yang digunakan untuk menyimpan objek. Semua objek harus disimpan dalam sebuah bucket. Bucket ditampilkan secara alfabetis. Anda dapat melihat bucket yang dimiliki oleh Akun Alibaba Cloud Anda di seluruh wilayah dan memfilternya berdasarkan kondisi tertentu.
Catatan penggunaan
Sebelum menjalankan kode contoh dalam topik ini, buat instans OSSClient menggunakan metode seperti nama domain kustom atau Security Token Service (STS). Untuk informasi selengkapnya, lihat Inisialisasi (iOS SDK).
CatatanBucket yang ditampilkan berasal dari wilayah yang ditentukan oleh endpoint dalam konfigurasi inisialisasi Anda.
Menampilkan semua bucket
Kode berikut menunjukkan cara menampilkan semua bucket di seluruh wilayah dalam Akun Alibaba Cloud saat ini.
OSSGetServiceRequest * getService = [OSSGetServiceRequest new];
// Menampilkan semua bucket di semua wilayah dalam akun saat ini.
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;
}];
// Implementasikan pemblokiran sinkron untuk menunggu tugas selesai.
// [getServiceTask waitUntilFinished];Menampilkan bucket dengan awalan tertentu
Kode berikut menunjukkan cara menampilkan bucket yang memiliki awalan "example" di seluruh wilayah dalam Akun Alibaba Cloud saat ini.
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;
}];
// Implementasikan pemblokiran sinkron untuk menunggu tugas selesai.
// [getServiceTask waitUntilFinished];Menampilkan bucket setelah penanda tertentu
Kode berikut menunjukkan cara menampilkan bucket yang namanya secara alfabetis berada setelah "examplebucket" di seluruh wilayah dalam Akun Alibaba Cloud saat ini.
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;
}];
// Implementasikan pemblokiran sinkron untuk menunggu tugas selesai.
// [getServiceTask waitUntilFinished];Menampilkan jumlah bucket tertentu
Kode berikut menunjukkan cara menampilkan bucket di seluruh wilayah dalam Akun Alibaba Cloud saat ini dengan membatasi jumlah bucket yang dikembalikan maksimal sebanyak 500.
OSSGetServiceRequest * getService = [OSSGetServiceRequest new];
// Menampilkan semua bucket di semua wilayah untuk akun saat ini. Batasi jumlah bucket hingga 500. Nilai default: 100. Maksimum: 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;
}];
// Implementasikan pemblokiran sinkron untuk menunggu tugas selesai.
// [getServiceTask waitUntilFinished];Referensi
Untuk informasi selengkapnya mengenai operasi API untuk menampilkan bucket, lihat ListBuckets (GetService).
Untuk informasi selengkapnya mengenai inisialisasi instans OSSClient, lihat Initialize an OSSClient instance.