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).
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 |
| 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. |
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
Untuk informasi selengkapnya tentang operasi API simple download, lihat GetObject.
Untuk informasi selengkapnya tentang inisialisasi instans OSSClient, lihat How to initialize an OSSClient instance.