Objek tidak dapat langsung diganti namanya. Untuk mengganti nama objek dalam bucket, Anda dapat memanggil operasi CopyObject untuk menyalin objek sumber ke objek tujuan dan kemudian memanggil operasi DeleteObject untuk menghapus objek sumber.
Catatan penggunaan
Dalam topik ini, titik akhir publik Wilayah China (Hangzhou) digunakan. Jika Anda ingin mengakses OSS dari layanan Alibaba Cloud lainnya di wilayah yang sama dengan OSS, gunakan titik akhir internal. Untuk informasi lebih lanjut tentang wilayah dan titik akhir OSS, lihat Wilayah dan titik akhir OSS.
Dalam topik ini, kredensial akses diperoleh dari variabel lingkungan. Untuk informasi lebih lanjut tentang cara mengonfigurasi kredensial akses, lihat Mengonfigurasi kredensial akses menggunakan OSS SDK untuk Python 1.0.
Dalam topik ini, instans OSSClient dibuat dengan menggunakan titik akhir OSS. Jika Anda ingin membuat instans OSSClient dengan menggunakan nama domain kustom atau Layanan Token Keamanan (STS), lihat Inisialisasi.
Kode contoh
Berikut adalah kode contoh untuk mengganti nama objek bernama srcobject.txt di bucket examplebucket menjadi destobject.txt:
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, 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 ke https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Tentukan ID wilayah yang sesuai dengan titik akhir. Contoh: cn-hangzhou. Parameter ini diperlukan jika Anda menggunakan algoritma tanda tangan V4.
region = "cn-hangzhou"
# Tentukan nama bucket.
bucket_name = 'examplebucket'
bucket = oss2.Bucket(auth, endpoint, bucket_name, region=region)
# Tentukan jalur lengkap objek sumber. Jangan sertakan nama bucket dalam jalur lengkap. Contoh: srcobject.txt.
src_object_name = 'srcobject.txt'
# Tentukan jalur lengkap objek tujuan. Jangan sertakan nama bucket dalam jalur lengkap. Contoh: destobject.txt.
dest_object_name = 'destobject.txt'
# Salin objek srcobject.txt di examplebucket ke objek destobject.txt di bucket yang sama.
result = bucket.copy_object(bucket_name, src_object_name, dest_object_name)
# Lihat tanggapan. Jika kode status HTTP 200 dikembalikan, operasi berhasil.
print('result.status:', result.status)
# Hapus objek srcobject.txt.
result_del = bucket.delete_object(src_object_name)
# Lihat tanggapan. Jika kode status HTTP 204 dikembalikan, operasi berhasil.
print('result.status:', result_del.status)Direktori dalam bucket juga tidak dapat langsung diganti namanya. Untuk mengganti nama direktori dalam bucket, Anda dapat mengikuti contoh sebelumnya untuk mengganti nama subdirektori dan objek dalam direktori satu per satu.
Referensi
Untuk informasi lebih lanjut tentang operasi API yang dapat Anda panggil untuk mengganti nama objek, lihat CopyObject dan DeleteObject.