All Products
Search
Document Center

Object Storage Service:Streaming download (iOS SDK)

Last Updated:Nov 30, 2025

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

    Catatan

    Wilayah 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 NSURLSession dari library didReceiveData. 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

oss:GetObject

Mengunduh objek.

oss:GetObjectVersion

Saat mengunduh objek, jika Anda menentukan versi objek melalui versionId, izin ini diperlukan.

kms:Decrypt

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