全部产品
Search
文档中心

Object Storage Service:Unduhan rentang (iOS SDK)

更新时间:Nov 30, 2025

Jika Anda hanya memerlukan sebagian file, Anda dapat menggunakan unduhan rentang untuk mengambil bagian spesifik dari data tersebut.

Catatan penggunaan

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

Catatan

Wilayah bucket ditentukan oleh wilayah titik akhir yang ditetapkan saat inisialisasi.

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.

Unduhan rentang cocok untuk mengunduh objek besar. Jika parameter Range ditentukan dalam header permintaan, respons akan berisi panjang seluruh objek dan rentang data yang dikembalikan.

Contoh

Kode berikut menunjukkan contoh cara melakukan unduhan rentang:

OSSGetObjectRequest * request = [OSSGetObjectRequest new];
// Tentukan nama bucket. Misalnya, examplebucket.
request.bucketName = @"examplebucket";
// Tentukan path lengkap objek. Jangan sertakan nama bucket. Misalnya, exampledir/exampleobject.txt.
request.objectKey = @"exampledir/exampleobject.txt";
request.range = [[OSSRange alloc] initWithStart:1 withEnd:99]; // bytes=1-99
// request.range = [[OSSRange alloc] initWithStart:-1 withEnd:99]; // bytes=-99
// request.range = [[OSSRange alloc] initWithStart:10 withEnd:-1]; // bytes=10-
request.downloadProgress = ^(int64_t bytesWritten, int64_t totalBytesWritten, int64_t totalBytesExpectedToWrite) {
    NSLog(@"%lld, %lld, %lld", bytesWritten, totalBytesWritten, totalBytesExpectedToWrite);
};
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

  • Untuk informasi selengkapnya tentang operasi API untuk unduhan rentang, lihat GetObject.

  • Untuk informasi selengkapnya tentang cara menginisialisasi instans OSSClient, lihat Inisialisasi (iOS SDK).