Jika ukuran file terlalu besar atau waktu unduh terlalu lama, Anda dapat menggunakan unduhan streaming. Fitur ini memungkinkan Anda memproses file tersebut dalam segmen selama proses unduhan berlangsung.
Catatan penggunaan
Sebelum menggunakan kode contoh dalam topik ini, Anda harus membuat instans OSSClient. Instans tersebut dapat dibuat menggunakan nama domain kustom atau Security Token Service (STS). Untuk informasi selengkapnya, lihat Initialization (iOS SDK).
CatatanWilayah bucket bergantung pada wilayah titik akhir yang Anda tentukan saat inisialisasi.
Object Storage Service (OSS) SDK untuk iOS tidak menyediakan operasi API untuk unduhan berbasis stream. Sebagai gantinya, SDK menyediakan fitur callback tersegmentasi yang menyerupai fungsi
NSURLSessiondari librarydidReceiveData. Jika Anda menetapkan callback tersegmentasi, hasil unduhan tidak berisi data aktual.
Izin
Secara default, Akun Alibaba Cloud memiliki izin penuh. Pengguna RAM atau Peran RAM di bawah Akun Alibaba Cloud tidak memiliki izin apa pun secara default. Akun Alibaba Cloud atau administrator akun harus memberikan izin operasi melalui RAM Policy atau Bucket policies.
API | Action | Definisi |
GetObject |
| Mengunduh objek. |
| Saat mengunduh objek, jika Anda menentukan versi objek melalui versionId, izin ini diperlukan. | |
| Saat mengunduh objek, jika metadata objek berisi X-Oss-Server-Side-Encryption: KMS, izin ini diperlukan. |
Kode contoh
Kode berikut menunjukkan cara melakukan unduhan streaming:
OSSGetObjectRequest * request = [OSSGetObjectRequest new];
// Tentukan nama bucket. Contohnya, examplebucket.
request.bucketName = @"examplebucket";
// Tentukan path lengkap objek. Jangan sertakan nama bucket. Contohnya, exampledir/exampleobject.txt.
request.objectKey = @"exampledir/exampleobject.txt";
// Tetapkan fungsi callback tersegmentasi.
request.onRecieveData = ^(NSData * data) {
NSLog(@"Menerima data, panjang: %ld", [data length]);
};
OSSTask * getTask = [client getObject:request];
[getTask continueWithBlock:^id(OSSTask *task) {
if (!task.error) {
NSLog(@"Unduh objek berhasil!");
} else {
NSLog(@"Unduh objek gagal, error: %@" ,task.error);
}
return nil;
}];
// [getTask waitUntilFinished];
// [request cancel];Dokumen terkait
Untuk informasi selengkapnya tentang operasi API untuk unduhan streaming, lihat GetObject.
Untuk informasi selengkapnya tentang inisialisasi instans OSSClient, lihat Initialization (iOS SDK).