全部产品
Search
文档中心

Object Storage Service:Unggah tambah (Python SDK V1)

更新时间:Nov 27, 2025

Unggah tambah menambahkan konten ke objek yang dapat ditambahkan yang sudah ada menggunakan metode AppendObject.

Catatan penggunaan

  • Topik ini menggunakan titik akhir publik wilayah China (Hangzhou). Jika Anda mengakses OSS dari layanan Alibaba Cloud lainnya di wilayah yang sama dengan OSS, gunakan titik akhir internal. Untuk informasi selengkapnya mengenai wilayah dan titik akhir OSS, lihat Wilayah dan titik akhir.

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

  • Jika file tidak ada, pemanggilan operasi AppendObject akan membuat objek yang dapat ditambahkan.

  • Jika file sudah ada:

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

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

    • Jika file bukan objek yang dapat ditambahkan, misalnya objek Normal yang diunggah melalui unggah 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 Kebijakan bucket.

API

Action

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 menambahkan konten ke objek:

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider

# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())

# Tentukan titik akhir wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir menjadi https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"

# Tentukan ID wilayah yang sesuai dengan titik akhir tersebut. Contoh: cn-hangzhou. Parameter ini wajib jika Anda menggunakan Signature V4.
region = "cn-hangzhou"

# Tentukan nama bucket Anda.
bucket = oss2.Bucket(auth, endpoint, "yourBucketName", region=region)

# Kode berikut memberikan contoh cara menentukan header untuk unggah tambah.
# headers = dict()
# Tentukan perilaku caching halaman web untuk objek tersebut.
# headers['Cache-Control'] = 'no-cache'
# Tentukan nama objek saat objek diunduh.
# headers['Content-Disposition'] = 'oss_MultipartUpload.txt'
# Header permintaan ini digunakan untuk memeriksa apakah konten pesan sama dengan konten yang dikirim.
# headers['Content-MD5'] = 'ohhnqLBJFiKkPSBO1eNaUA=='
# Tentukan tanggal kedaluwarsa.
# headers['Expires'] = 'Wed, 08 Jul 2022 16:57:01 GMT'
# Tentukan daftar kontrol akses (ACL) objek. Pada contoh ini, ACL diatur ke OBJECT_ACL_PRIVATE, yang menentukan izin akses privat.
# headers['x-oss-object-acl'] = oss2.OBJECT_ACL_PRIVATE
# Tentukan apakah objek dengan nama yang sama akan ditimpa selama unggah tambah.
# headers['x-oss-forbid-overwrite'] = 'true'
# Tentukan metode enkripsi sisi server. Contoh ini menggunakan enkripsi sisi server dengan kunci yang dikelola OSS (SSE-OSS).
# headers[OSS_SERVER_SIDE_ENCRYPTION] = SERVER_SIDE_ENCRYPTION_AES256
# Tentukan kelas penyimpanan objek.
# headers['x-oss-storage-class'] = oss2.BUCKET_STORAGE_CLASS_STANDARD
# Tambahkan parameter dengan awalan x-oss-meta- saat memanggil operasi AppendObject untuk membuat objek yang dapat ditambahkan. Jangan sertakan parameter ini dalam permintaan untuk menambahkan konten ke objek yang dapat ditambahkan yang sudah ada. Parameter dengan awalan x-oss-meta- dianggap sebagai metadata objek.
# headers['x-oss-meta-author'] = 'Alice'
# result = bucket.append_object(exampledir/exampleobject.txt, 0, 'content of first append', headers=headers)

# Atur posisi awal operasi tambah pertama (parameter Position) ke 0.
# Tentukan path lengkap objek. Jangan sertakan nama bucket dalam path lengkap. Contoh: exampledir/exampleobject.txt.
result = bucket.append_object('exampledir/exampleobject.txt', 0, 'content of first append')
# Jika ini bukan operasi tambah pertama, peroleh posisi tambah dari atribut next_position pada nilai kembali operasi tambah sebelumnya, atau dengan memanggil metode bucket.head_object.
bucket.append_object('<yourObjectName>', result.next_position, 'content of second append')        

Referensi

  • Untuk kode contoh lengkap unggah tambah, lihat contoh di GitHub.

  • Untuk informasi selengkapnya mengenai operasi API AppendObject, lihat AppendObject.