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