Anda dapat menggunakan grafik bilah kemajuan untuk menunjukkan progres objek yang sedang diunggah atau diunduh. Topik ini menggunakan operasi GetObject untuk menjelaskan cara menampilkan grafik bilah kemajuan selama pengunduhan objek.
Catatan penggunaan
Sebelum menjalankan kode contoh dalam topik ini, Anda harus membuat instans OSSClient dengan metode seperti menggunakan nama domain kustom atau Security Token Service (STS). Untuk informasi selengkapnya, lihat Inisialisasi.
CatatanWilayah bucket ditentukan oleh wilayah titik akhir yang ditetapkan saat inisialisasi.
Untuk mengunduh file, Anda harus memiliki izin
ossGetObject. Untuk informasi selengkapnya, lihat Berikan kebijakan akses kustom kepada RAM user.
Contoh
Kode contoh berikut menunjukkan cara menampilkan progres objek bernama exampleobject.txt yang sedang diunduh dari bucket bernama examplebucket:
OSSGetObjectRequest * request = [OSSGetObjectRequest new];
// Tentukan nama bucket. Contoh: examplebucket.
request.bucketName = @"examplebucket";
// Tentukan path lengkap objek. Jangan sertakan nama bucket dalam path lengkap. Contoh: exampledir/exampleobject.txt.
request.objectKey = @"exampledir/exampleobject.txt";
// Konfigurasikan fungsi callback progres untuk menampilkan bilah kemajuan.
request.downloadProgress = ^(int64_t bytesWritten, int64_t totalBytesWritten, int64_t totalBytesExpectedToWrite) {
// Tentukan jumlah byte yang sedang diunduh, jumlah byte yang telah diunduh, dan jumlah total byte yang ingin diunduh.
NSLog(@"%lld, %lld, %lld", bytesWritten, totalBytesWritten, totalBytesExpectedToWrite);
};
OSSTask * getTask = [client getObject:request];
[getTask continueWithBlock:^id(OSSTask *task) {
if (!task.error) {
NSLog(@"download object success!");
} else {
NSLog(@"download object failed, error: %@" ,task.error);
}
return nil;
}];
// Terapkan pemblokiran sinkron untuk menunggu tugas selesai.
// [putTask waitUntilFinished]; Referensi
Untuk informasi selengkapnya tentang cara menginisialisasi instans OSSClient, lihat Inisialisasi.