Anda dapat menggunakan metode CopyObject untuk mengubah kelas penyimpanan objek dari Standar menjadi Arsip.
import argparse
import alibabacloud_oss_v2 as oss
# Buat parser argumen baris perintah.
parser = argparse.ArgumentParser(description="contoh salinan objek")
# Tambahkan argumen baris perintah --region, yang menentukan wilayah tempat bucket berada. Argumen ini wajib.
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)
# Tambahkan argumen baris perintah --bucket, yang menentukan nama bucket tujuan. Argumen ini wajib.
parser.add_argument('--bucket', help='Nama bucket tujuan.', required=True)
# Tambahkan argumen baris perintah --endpoint, yang menentukan nama domain yang dapat digunakan layanan lain untuk mengakses OSS. Argumen ini opsional.
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')
# Tambahkan argumen baris perintah --key, yang menentukan nama objek tujuan. Argumen ini wajib.
parser.add_argument('--key', help='Nama objek tujuan.', required=True)
# Tambahkan argumen baris perintah --source_key, yang menentukan nama objek sumber. Argumen ini wajib.
parser.add_argument('--source_key', help='Nama objek sumber.', required=True)
# Tambahkan argumen baris perintah --source_bucket, yang menentukan nama bucket sumber. Argumen ini wajib.
parser.add_argument('--source_bucket', help='Nama bucket sumber.', required=True)
def main():
# Parsing argumen baris perintah.
args = parser.parse_args()
# Muat kredensial dari variabel lingkungan untuk verifikasi identitas.
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# Muat konfigurasi default dari SDK dan atur penyedia kredensial.
cfg = oss.config.load_default()
cfg.credentials_provider = credentials_provider
# Atur wilayah dalam konfigurasi.
cfg.region = args.region
# Jika parameter endpoint diberikan, atur endpoint dalam konfigurasi.
if args.endpoint is not None:
cfg.endpoint = args.endpoint
# Buat klien OSS berdasarkan konfigurasi.
client = oss.Client(cfg)
# Jalankan permintaan untuk menyalin objek.
result = client.copy_object(oss.CopyObjectRequest(
bucket=args.bucket, # Tentukan nama bucket tujuan.
key=args.key, # Tentukan kunci objek tujuan.
source_key=args.source_key, # Tentukan kunci objek sumber.
source_bucket=args.source_bucket, # Tentukan nama bucket sumber.
storage_class= "Archive", # Ubah kelas penyimpanan menjadi Penyimpanan Arsip.
))
# Cetak hasil operasi penyalinan.
print(f'kode status: {result.status_code},'
f' ID permintaan: {result.request_id},'
f' ID versi: {result.version_id},'
f' hash crc64: {result.hash_crc64},'
f' ID versi sumber: {result.source_version_id},'
f' enkripsi sisi server: {result.server_side_encryption},'
f' enkripsi data sisi server: {result.server_side_data_encryption},'
f' terakhir dimodifikasi: {result.last_modified},'
f' etag: {result.etag},'
)
# Panggil fungsi utama saat skrip dijalankan langsung.
if __name__ == "__main__":
main() # Titik masuk skrip. Fungsi utama dipanggil ketika file dijalankan langsung.