Anda dapat menggunakan kode berikut untuk mengatur metode enkripsi default untuk sebuah bucket. Setelah konfigurasi ini diterapkan, objek apa pun yang diunggah ke bucket tanpa metode enkripsi yang ditentukan akan dienkripsi menggunakan metode enkripsi default bucket tersebut.
import argparse
import alibabacloud_oss_v2 as oss
# Buat parser argumen command line untuk menerima parameter yang dimasukkan pengguna.
parser = argparse.ArgumentParser(description="put bucket encryption sample")
# Tambahkan argumen command line --region, yang menentukan wilayah tempat bucket berada. Argumen ini wajib diisi.
parser.add_argument('--region', help='The region in which the bucket is located.', required=True)
# Tambahkan argumen command line --bucket, yang menentukan nama bucket. Argumen ini wajib diisi.
parser.add_argument('--bucket', help='The name of the bucket.', required=True)
# Tambahkan argumen command line --endpoint, yang menentukan nama domain yang dapat digunakan layanan lain untuk mengakses OSS. Argumen ini opsional.
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS')
# Tambahkan argumen command line --sse_algorithm, yang menentukan metode enkripsi sisi server default. Nilai default-nya adalah 'KMS'.
# Nilai yang valid: KMS (enkripsi menggunakan KMS), AES256 (enkripsi menggunakan AES-256), dan SM4 (enkripsi menggunakan algoritma kriptografi Tiongkok SM4).
parser.add_argument('--sse_algorithm', help='The default server-side encryption method. Valid values: KMS, AES256, and SM4.', default='KMS')
# Tambahkan argumen command line --kms_master_key_id, yang menentukan ID kunci utama ketika SSEAlgorithm diatur ke KMS dan CMK tertentu digunakan untuk enkripsi.
# Jika Anda tidak menggunakan CMK tertentu, biarkan parameter ini kosong.
parser.add_argument('--kms_master_key_id', help='The CMK ID that is specified when SSEAlgorithm is set to KMS and a specified CMK is used for encryption. In other cases, leave this parameter empty.', default='')
# Tambahkan argumen command line --kms_data_encryption, yang menentukan algoritma yang digunakan untuk mengenkripsi objek.
# Nilai default-nya adalah 'SM4'. Parameter ini hanya berlaku ketika SSEAlgorithm diatur ke KMS.
parser.add_argument('--kms_data_encryption', help='The algorithm that is used to encrypt objects. If this parameter is not specified, objects are encrypted using AES256. This parameter is valid only when SSEAlgorithm is set to KMS. Valid value: SM4', default='SM4')
def main():
# Uraikan argumen command line.
args = parser.parse_args()
# Muat kredensial (AccessKeyId dan AccessKeySecret) dari variabel lingkungan.
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# Muat konfigurasi default SDK.
cfg = oss.config.load_default()
# Atur penyedia kredensial.
cfg.credentials_provider = credentials_provider
# Atur wilayah tempat bucket berada.
cfg.region = args.region
# Jika titik akhir kustom disediakan, atur dalam konfigurasi.
if args.endpoint is not None:
cfg.endpoint = args.endpoint
# Inisialisasi client OSS menggunakan objek konfigurasi.
client = oss.Client(cfg)
# Panggil metode put_bucket_encryption untuk mengatur konfigurasi enkripsi bucket.
result = client.put_bucket_encryption(
oss.PutBucketEncryptionRequest(
bucket=args.bucket, # Tentukan nama bucket tujuan.
server_side_encryption_rule=oss.ServerSideEncryptionRule(
apply_server_side_encryption_by_default=oss.ApplyServerSideEncryptionByDefault(
kms_master_key_id=args.kms_master_key_id, # ID kunci utama. Parameter ini hanya berlaku ketika SSEAlgorithm diatur ke KMS.
kms_data_encryption=args.kms_data_encryption, # Algoritma enkripsi objek. Parameter ini hanya berlaku ketika SSEAlgorithm diatur ke KMS.
sse_algorithm=args.sse_algorithm, # Algoritma enkripsi sisi server, seperti KMS, AES256, atau SM4.
),
),
)
)
# Cetak kode status dan ID permintaan dari hasil operasi.
print(f'status code: {result.status_code}, ' # Kode status HTTP, yang menunjukkan apakah permintaan berhasil.
f'request id: {result.request_id}') # ID permintaan, yang digunakan untuk melacak log permintaan dan debugging.
if __name__ == "__main__":
# Titik masuk program. Panggil fungsi main untuk menjalankan logika.
main()