全部产品
Search
文档中心

Object Storage Service:Upload append (Ruby SDK)

更新时间:Nov 30, 2025

Upload append menambahkan konten ke objek yang dapat ditambahkan yang sudah ada dengan menggunakan metode AppendObject.

Catatan

  • Pada topik ini, titik akhir publik wilayah China (Hangzhou) digunakan. Untuk mengakses OSS dari layanan Alibaba Cloud lainnya dalam wilayah yang sama, gunakan titik akhir internal. Untuk detail wilayah dan titik akhir yang didukung, lihat Regions and endpoints.

  • Pada topik ini, instans OSSClient dibuat dengan menggunakan titik akhir OSS. Jika Anda ingin membuat instans OSSClient dengan menggunakan nama domain kustom atau Security Token Service (STS), lihat Configuration examples for common scenarios.

  • Jika file tidak ada, metode Bucket#append_object akan membuat objek yang dapat ditambahkan.

  • Jika file sudah ada:

    • Jika file tersebut merupakan objek yang dapat ditambahkan dan posisi append yang ditentukan sesuai dengan panjang file saat ini, konten akan ditambahkan ke akhir file.

    • Jika file tersebut merupakan objek yang dapat ditambahkan tetapi posisi append yang ditentukan tidak sesuai dengan panjang file saat ini, pengecualian PositionNotEqualToLength akan dilemparkan.

    • Jika file tersebut bukan objek yang dapat ditambahkan, seperti objek normal yang diupload melalui upload simple, pengecualian ObjectNotAppendable akan dilemparkan.

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

AppendObject

oss:PutObject

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

oss:PutObjectTagging

Saat mengupload objek dengan menambahkannya ke objek yang sudah ada, jika Anda menentukan tag objek melalui x-oss-tagging, izin ini diperlukan.

Kode contoh

Kode berikut menunjukkan cara melakukan upload append.

require 'aliyun/oss'

client = Aliyun::OSS::Client.new(
  # Wilayah China (Hangzhou) digunakan sebagai contoh. Tentukan wilayah yang sebenarnya.
  endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
  # Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
  access_key_id: ENV['OSS_ACCESS_KEY_ID'],
  access_key_secret: ENV['OSS_ACCESS_KEY_SECRET']
)

# Tentukan nama bucket, misalnya examplebucket.
bucket = client.get_bucket('examplebucket')
# Tentukan path lengkap objek. Path lengkap tidak boleh mengandung nama bucket.
bucket.append_object('my-object', 0)

# Tambahkan konten ke akhir file.
next_pos = bucket.append_object('my-object', 0) do |stream|
  100.times { |i| stream << i.to_s }
end
next_pos = bucket.append_object('my-object', next_pos, :file => 'local-file-1')
next_pos = bucket.append_object('my-object', next_pos, :file => 'local-file-2')

Referensi

Untuk informasi selengkapnya mengenai operasi API AppendObject, lihat AppendObject.