全部产品
Search
文档中心

Object Storage Service:Simple download (iOS SDK)

更新时间:Nov 30, 2025

Topik ini menjelaskan cara melakukan download sederhana.

Catatan Penggunaan

Sebelum menggunakan contoh dalam topik ini, buat instans OSSClient menggunakan nama domain kustom atau Security Token Service (STS). Untuk informasi selengkapnya, lihat Initialization (iOS SDK).

Catatan

Wilayah bucket ditentukan oleh wilayah titik akhir yang ditetapkan dalam konfigurasi inisialisasi.

Permissions

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

Definition

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.

Contoh

Anda dapat mengunduh objek ke file lokal atau sebagai NSData.

OSSGetObjectRequest * request = [OSSGetObjectRequest new];

// Tentukan nama bucket, misalnya examplebucket.
request.bucketName = @"examplebucket";
// Tentukan path lengkap objek, misalnya exampledir/exampleobject.txt. Path lengkap objek tidak boleh mengandung nama bucket.
request.objectKey = @"exampledir/exampleobject.txt";

// Opsional.
request.downloadProgress = ^(int64_t bytesWritten, int64_t totalBytesWritten, int64_t totalBytesExpectedToWrite) {
    // Panjang segmen saat ini, total panjang yang telah diunduh, dan total panjang yang diharapkan.
    NSLog(@"%lld, %lld, %lld", bytesWritten, totalBytesWritten, totalBytesExpectedToWrite);
};
// request.range = [[OSSRange alloc] initWithStart:0 withEnd:99]; // bytes=0-99. Menentukan rentang untuk download.
// request.downloadToFileURL = [NSURL fileURLWithPath:@"<filepath>"]; // Untuk mengunduh objek langsung ke file, tentukan path file tujuan.

OSSTask * getTask = [client getObject:request];

[getTask continueWithBlock:^id(OSSTask *task) {
    if (!task.error) {
        NSLog(@"download object success!");
        OSSGetObjectResult * getResult = task.result;
        NSLog(@"download result: %@", getResult.downloadedData);
    } else {
        NSLog(@"download object failed, error: %@" ,task.error);
    }
    return nil;
}];

// [getTask waitUntilFinished];

// [request cancel];

Referensi