Unggah tambahan menambahkan konten ke akhir objek yang dapat ditambahkan yang sudah ada dengan menggunakan metode AppendObject.
Perhatian
Untuk melakukan unggah tambahan menggunakan kit pengembangan perangkat lunak (SDK) Browser.js, Anda harus mengekspos header
x-oss-next-append-positiondalam aturan lintas asal bucket. Jika tidak, posisi tambahannextAppendPositiontidak dapat diambil dan unggahan gagal. Untuk informasi selengkapnya, lihat Setel berbagi sumber daya lintas asal.Pada topik ini, instans OSSClient dibuat dengan menggunakan titik akhir OSS. Jika Anda ingin membuat instans OSSClient menggunakan nama domain kustom atau Security Token Service (STS), lihat Inisialisasi (Browser.js SDK).
Pada topik ini, instans OSSClient dibuat dengan menggunakan titik akhir OSS. Jika Anda ingin membuat instans OSSClient menggunakan nama domain kustom atau Security Token Service (STS), lihat Contoh konfigurasi untuk skenario umum.
Jika objek tidak ada, operasi AppendObject akan membuat objek baru yang dapat ditambahkan.
Jika objek sudah ada, ketentuan berikut berlaku saat Anda memanggil operasi AppendObject:
Jika objek merupakan objek yang dapat ditambahkan dan posisi tambahan yang ditentukan sama dengan panjang objek saat ini, konten akan ditambahkan ke akhir objek.
Jika objek merupakan objek yang dapat ditambahkan tetapi posisi tambahan yang ditentukan tidak sesuai dengan panjang objek saat ini, eksepsi PositionNotEqualToLength dikembalikan.
Jika objek bukan objek yang dapat ditambahkan, seperti objek Normal yang diunggah melalui unggahan simple, eksepsi ObjectNotAppendable dikembalikan.
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 Kebijakan RAM atau Kebijakan bucket.
API | Aksi | 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. |
Contoh
Kode berikut menunjukkan cara melakukan unggah tambahan:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<script src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.17.1.min.js"></script>
</head>
<body>
<input type="file" id="file" />
<button id="upload">Upload</button>
<script>
const upload = document.getElementById("upload");
const client = new OSS({
// Setel yourRegion ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah Tiongkok (Hangzhou), setel yourRegion ke oss-cn-hangzhou.
region: 'yourRegion',
authorizationV4: true,
// Pasangan AccessKey sementara (ID AccessKey dan Rahasia AccessKey) yang diperoleh dari STS.
accessKeyId: 'yourAccessKeyId',
accessKeySecret: 'yourAccessKeySecret',
// Token keamanan yang diperoleh dari STS.
stsToken: 'yourSecurityToken',
// Tentukan nama bucket.
bucket: 'examplebucket'
});
upload.addEventListener("click", async () => {
const target = file.files[0];
// Tentukan path lengkap objek. Path lengkap tidak boleh mengandung nama bucket. Contoh: examplefile.txt.
// Unggah tambahan pertama. Nilai kembali menunjukkan posisi untuk operasi tambahan berikutnya.
const result = await client.append("examplefile.txt", target);
await client.append("123", result, {
// Unggah tambahan kedua. Posisi untuk operasi tambahan selanjutnya adalah panjang objek (Content-Length) sebelum operasi tambahan.
position: result.nextAppendPosition,
});
});
</script>
</body>
</html>Referensi
Untuk kode contoh lengkap unggah tambahan, lihat Contoh GitHub.
Untuk informasi selengkapnya tentang operasi API unggah tambahan, lihat AppendObject.