全部产品
Search
文档中心

Object Storage Service:Unggah tambahan (Browser.js SDK)

更新时间:Nov 30, 2025

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-position dalam aturan lintas asal bucket. Jika tidak, posisi tambahan nextAppendPosition tidak 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

oss:PutObject

Anda dapat memanggil operasi ini untuk mengunggah objek dengan menambahkannya ke objek yang sudah ada.

oss:PutObjectTagging

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.