全部产品
Search
文档中心

Object Storage Service:Daftar objek (iOS SDK)

更新时间:Nov 30, 2025

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.

    Catatan

    Saat 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;
}
@end

Kode 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;
}
@end

Kode 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.