Topik ini menjelaskan cara mendaftar objek dalam sebuah bucket, seperti mendaftar semua objek, sejumlah objek tertentu, atau objek yang namanya mengandung awalan tertentu.
Catatan penggunaan
Sebelum menjalankan kode contoh dalam topik ini, Anda harus membuat instans OSSClient menggunakan metode seperti nama domain kustom atau Security Token Service (STS). Untuk informasi selengkapnya, lihat Initialization.
CatatanSaat menginisialisasi instans OSSClient, tentukan titik akhir yang sesuai dengan wilayah bucket tersebut.
Untuk mendaftar file, Anda memerlukan izin
ossGetObject. Untuk informasi selengkapnya, lihat Grant custom access policies to RAM users.
Mendaftar sejumlah objek tertentu
Kode contoh berikut menunjukkan cara mendaftar hingga 20 objek dalam bucket bernama examplebucket:
OSSGetBucketRequest * getBucket = [OSSGetBucketRequest new];
// Tentukan nama bucket. Contoh: examplebucket.
getBucket.bucketName = @"examplebucket";
// Tentukan jumlah maksimum objek yang dikembalikan. Secara default, nilai parameter ini adalah 100. Nilai maksimum yang dapat Anda tentukan adalah 1000.
getBucket.maxKeys = 20;
OSSTask * getBucketTask = [client getBucket:getBucket];
[getBucketTask continueWithBlock:^id(OSSTask *task) {
if (!task.error) {
OSSGetBucketResult * result = task.result;
NSLog(@"get bucket success!");
for (NSDictionary * objectInfo in result.contents) {
NSLog(@"list object: %@", objectInfo);
}
} else {
NSLog(@"get bucket failed, error: %@", task.error);
}
return nil;
}];
// Terapkan pemblokiran sinkron untuk menunggu tugas selesai.
// [getBucketTask waitUntilFinished];Mendaftar objek yang namanya mengandung awalan tertentu
Kode contoh berikut menunjukkan cara mendaftar objek yang namanya mengandung awalan "file" dalam bucket bernama examplebucket:
OSSGetBucketRequest * getBucket = [OSSGetBucketRequest new];
// Tentukan nama bucket. Contoh: examplebucket.
getBucket.bucketName = @"examplebucket";
// Tentukan awalan.
getBucket.prefix = @"file";
OSSTask * getBucketTask = [client getBucket:getBucket];
[getBucketTask continueWithBlock:^id(OSSTask *task) {
if (!task.error) {
OSSGetBucketResult * result = task.result;
NSLog(@"get bucket success!");
for (NSDictionary * objectInfo in result.contents) {
NSLog(@"list object: %@", objectInfo);
}
} else {
NSLog(@"get bucket failed, error: %@", task.error);
}
return nil;
}];
// Terapkan pemblokiran sinkron untuk menunggu tugas selesai.
// [getBucketTask waitUntilFinished]Mendaftar objek yang namanya secara alfabetis berada setelah nilai marker
Kode contoh berikut menunjukkan cara mendaftar objek yang namanya secara alfabetis berada setelah marker exampleobject.txt dalam bucket bernama examplebucket:
OSSGetBucketRequest * getBucket = [OSSGetBucketRequest new];
// Tentukan nama bucket. Contoh: examplebucket.
getBucket.bucketName = @"examplebucket";
// Tentukan marker. Objek yang namanya secara alfabetis berada setelah marker akan dikembalikan.
// Jika objek yang ditentukan oleh marker tidak ada di dalam bucket, objek yang namanya secara alfabetis berada setelah nilai marker tersebut akan dikembalikan.
getBucket.marker = @"exampleobject.txt";
OSSTask * getBucketTask = [client getBucket:getBucket];
[getBucketTask continueWithBlock:^id(OSSTask *task) {
if (!task.error) {
OSSGetBucketResult * result = task.result;
NSLog(@"get bucket success!");
for (NSDictionary * objectInfo in result.contents) {
NSLog(@"list object: %@", objectInfo);
}
} else {
NSLog(@"get bucket failed, error: %@", task.error);
}
return nil;
}];
// Terapkan pemblokiran sinkron untuk menunggu tugas selesai.
// [getBucketTask waitUntilFinished]Mendaftar objek per halaman
Pertama, deklarasikan variabel global yang terkait dengan operasi daftar.
@interface ... {
NSString *_marker;
BOOL _isCompleted;
}
@endKode contoh berikut menunjukkan cara mendaftar objek dalam bucket examplebucket per halaman. Dalam contoh ini, hingga 20 objek dikembalikan per halaman.
do {
OSSGetBucketRequest *getBucket = [OSSGetBucketRequest new];
getBucket.bucketName = @"examplebucket";
getBucket.marker = _marker; // Mengakses variabel instans _marker
getBucket.maxKeys = 20;
OSSTask *getBucketTask = [client getBucket:getBucket];
[getBucketTask continueWithBlock:^id(OSSTask *task) {
if (!task.error) {
OSSGetBucketResult *result = task.result;
NSLog(@"Get bucket success!");
NSLog(@"objects: %@", result.contents);
if (result.isTruncated) {
_marker = result.nextMarker; // Perbarui variabel instans _marker
_isCompleted = NO;
} else {
_isCompleted = YES;
}
} else {
_isCompleted = YES;
NSLog(@"Get bucket failed, error: %@", task.error);
}
return nil;
}];
// Terapkan pemblokiran sinkron untuk menunggu tugas selesai.
[getBucketTask waitUntilFinished];
} while (!_isCompleted);Mendaftar objek yang namanya mengandung awalan tertentu per halaman
Pertama, deklarasikan variabel global yang terkait dengan operasi daftar.
@interface ... {
NSString *_marker;
BOOL _isCompleted;
}
@endKode contoh berikut menunjukkan cara mendaftar objek dengan awalan nama "file" dalam bucket examplebucket. Dalam contoh ini, hingga 20 objek dikembalikan per halaman.
do {
OSSGetBucketRequest *getBucket = [OSSGetBucketRequest new];
getBucket.bucketName = @"examplebucket";
getBucket.marker = _marker; // Mengakses variabel instans _marker
getBucket.maxKeys = 20;
getBucket.prefix = @"file";
OSSTask *getBucketTask = [client getBucket:getBucket];
[getBucketTask continueWithBlock:^id(OSSTask *task) {
if (!task.error) {
OSSGetBucketResult *result = task.result;
NSLog(@"Get bucket success!");
NSLog(@"objects: %@", result.contents);
if (result.isTruncated) {
_marker = result.nextMarker; // Perbarui variabel instans _marker
_isCompleted = NO;
} else {
_isCompleted = YES;
}
} else {
_isCompleted = YES;
NSLog(@"Get bucket failed, error: %@", task.error);
}
return nil;
}];
// Terapkan pemblokiran sinkron untuk menunggu tugas selesai.
[getBucketTask waitUntilFinished];
} while (!_isCompleted);Referensi
Untuk informasi selengkapnya tentang Operasi API yang dapat Anda panggil untuk mendaftar objek, lihat GetBucket (ListObjects).
Untuk informasi selengkapnya tentang cara menginisialisasi instans OSSClient, lihat Initialization.