Append upload menggunakan operasi API AppendObject dari Object Storage Service (OSS) untuk menambahkan konten ke objek yang dapat ditambahkan yang sudah ada.
Objek yang diunggah menggunakan operasi AppendObject adalah objek yang dapat ditambahkan. Objek yang diunggah menggunakan operasi PutObject adalah objek normal.
Pertimbangan
Sebelum menggunakan contoh dalam topik ini, Anda harus membuat instans OSSClient menggunakan nama domain kustom atau Security Token Service (STS). Untuk informasi selengkapnya, lihat Inisialisasi (iOS SDK).
CatatanWilayah bucket yang Anda buat ditentukan oleh titik akhir yang ditentukan dalam konfigurasi inisialisasi.
Dalam topik ini, kredensial akses diperoleh dari variabel lingkungan. Untuk informasi selengkapnya tentang cara mengonfigurasi kredensial akses, lihat Konfigurasi kredensial akses.
Jika objek belum ada, pemanggilan operasi AppendObject akan membuat objek yang dapat ditambahkan baru.
Jika objek sudah ada:
Jika objek tersebut merupakan objek yang dapat ditambahkan dan posisi penambahan yang ditentukan sesuai dengan panjang saat ini dari objek, konten akan ditambahkan ke akhir objek.
Jika objek tersebut merupakan objek yang dapat ditambahkan tetapi posisi penambahan yang ditentukan tidak sesuai dengan panjang saat ini dari objek, eksepsi PositionNotEqualToLength akan dilemparkan.
Jika objek tersebut bukan objek yang dapat ditambahkan, misalnya objek normal yang diunggah melalui simple upload, eksepsi ObjectNotAppendable akan dilemparkan.
Operasi CopyObject tidak didukung untuk objek yang dapat ditambahkan.
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 | Tindakan | Definisi |
AppendObject |
| Anda dapat memanggil operasi ini untuk mengunggah objek dengan menambahkannya ke objek yang sudah ada. |
| Saat mengunggah objek dengan menambahkannya ke objek yang sudah ada, jika Anda menentukan tag objek melalui x-oss-tagging, izin ini diperlukan. |
Kode contoh
Kode berikut memberikan contoh cara melakukan append upload.
OSSAppendObjectRequest * append = [OSSAppendObjectRequest new];
// Konfigurasikan bidang yang diperlukan. `bucketName` menentukan nama bucket. `objectKey`, yang setara dengan `objectName`, menentukan path lengkap objek yang ingin Anda tambahkan datanya. Path harus mencakup ekstensi file, misalnya `abc/efg/123.jpg`.
append.bucketName = @"<bucketName>";
append.objectKey = @"<objectKey>";
// Tentukan posisi untuk append upload pertama.
append.appendPosition = 0;
NSString * docDir = [self getDocumentDirectory];
append.uploadingFileURL = [NSURL fileURLWithPath:@"<yourLocalFilePath>"];
// Bidang berikut bersifat opsional.
append.uploadProgress = ^(int64_t bytesSent, int64_t totalByteSent, int64_t totalBytesExpectedToSend) {
NSLog(@"%lld, %lld, %lld", bytesSent, totalByteSent, totalBytesExpectedToSend);
};
// append.contentType = @"";
// append.contentMd5 = @"";
// append.contentEncoding = @"";
// append.contentDisposition = @"";
OSSTask * appendTask = [client appendObject:append];
[appendTask continueWithBlock:^id(OSSTask *task) {
NSLog(@"objectKey: %@", append.objectKey);
if (!task.error) {
NSLog(@"append object berhasil!");
OSSAppendObjectResult * result = task.result;
NSString * etag = result.eTag;
long nextPosition = result.xOssNextAppendPosition;
} else {
NSLog(@"append object gagal, error: %@" , task.error);
}
return nil;
}];Referensi
Untuk deskripsi operasi API AppendObject, lihat AppendObject.
Untuk informasi selengkapnya, lihat Cara menginisialisasi instans OSSClient.