全部产品
Search
文档中心

Object Storage Service:Kelola izin akses file menggunakan OSS SDK untuk Python 2.0

更新时间:Oct 21, 2025

Topik ini menjelaskan cara mengelola Daftar Kontrol Akses (ACL) objek menggunakan OSS SDK untuk PHP 2.0.

Catatan penggunaan

  • Kode contoh dalam topik ini menggunakan ID Wilayah cn-hangzhou dari Wilayah Hangzhou, Tiongkok. Secara default, Titik Akhir Publik digunakan untuk mengakses sumber daya dalam bucket. Jika Anda ingin mengakses sumber daya dalam bucket dari layanan Alibaba Cloud lainnya di wilayah yang sama dengan bucket tersebut, gunakan Titik Akhir Internal. Untuk informasi lebih lanjut tentang wilayah dan titik akhir yang didukung oleh OSS, lihat Wilayah dan Titik Akhir.

  • Untuk menetapkan izin akses untuk sebuah objek, Anda harus memiliki izin oss:PutObjectAcl. Untuk mendapatkan izin akses untuk sebuah objek, Anda harus memiliki izin oss:GetObjectAcl. Untuk informasi lebih lanjut, lihat Berikan Kebijakan Kustom kepada Pengguna RAM.

Metode

Konfigurasikan ACL sebuah objek

put_object_acl(request: PutObjectAclRequest, **kwargs) → PutObjectAclResult

Kueri ACL sebuah bucket.

get_object_acl(request: GetObjectAclRequest, **kwargs) → GetObjectAclResult

Parameter permintaan

Nama parameter

Tipe

Deskripsi

request

PutObjectAclRequest

Parameter permintaan. Untuk informasi lebih lanjut, lihat PutObjectAclRequest

GetObjectAclRequest

Parameter permintaan. Untuk informasi lebih lanjut, lihat GetObjectAclRequest

Parameter respons

Tipe

Deskripsi

PutObjectAclResult

Nilai kembali. Untuk informasi lebih lanjut, lihat PutObjectAclResult

GetObjectAclResult

Nilai kembali. Untuk informasi lebih lanjut, lihat GetObjectAclResult

Untuk definisi lengkap metode untuk menetapkan ACL sebuah file, lihat put_object_acl.

Untuk definisi lengkap metode untuk mendapatkan ACL sebuah file, lihat get_object_acl.

Jenis ACL

Tabel berikut menjelaskan ACL yang dapat dikonfigurasi untuk sebuah objek:

ACL

Deskripsi

Nilai ACL

Mewarisi dari bucket

File mewarisi izin akses dari bucket.

default

Pribadi

Hanya pemilik file dan pengguna yang diberi otorisasi yang dapat membaca dan menulis file. Pengguna lain tidak dapat mengakses file.

private

Baca-publik

Hanya pemilik file dan pengguna yang diberi otorisasi yang dapat membaca dan menulis file. Pengguna lain hanya dapat membaca file. Gunakan izin ini dengan hati-hati.

public-read

Baca-tulis publik

Semua pengguna dapat membaca dan menulis file. Gunakan izin ini dengan hati-hati.

public-read-write

ACL sebuah objek memiliki prioritas lebih tinggi daripada ACL bucket yang berisi objek tersebut. Sebagai contoh, jika ACL sebuah bucket adalah pribadi dan ACL sebuah objek dalam bucket tersebut adalah baca/tulis publik, semua pengguna diberikan izin baca dan tulis pada objek tersebut. Jika ACL sebuah objek tidak dikonfigurasi, ACL objek tersebut sama dengan ACL bucket tempat objek disimpan.

Kode contoh

Berikut adalah kode contoh untuk mengonfigurasi dan mendapatkan ACL sebuah objek.

import argparse
import alibabacloud_oss_v2 as oss

# Buat parser argumen baris perintah.
parser = argparse.ArgumentParser(description="put object acl sample")
# Tambahkan parameter yang diperlukan: region, nama bucket, kunci objek, dan daftar kontrol akses (ACL).
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)
parser.add_argument('--bucket', help='Nama bucket.', required=True)
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')
parser.add_argument('--key', help='Nama objek.', required=True)
parser.add_argument('--acl', help='Tentukan izin akses ACL untuk objek.', required=True)

def main():
    # Parse argumen baris perintah.
    args = parser.parse_args()

    # Muat informasi kredensial akses dari variabel lingkungan.
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # Gunakan konfigurasi default dari SDK.
    cfg = oss.config.load_default()
    # Tetapkan penyedia kredensial.
    cfg.credentials_provider = credentials_provider
    # Tetapkan wilayah yang diberikan oleh pengguna.
    cfg.region = args.region
    # Jika titik akhir diberikan, tetapkan titik akhir dalam konfigurasi.
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    # Buat klien OSS.
    client = oss.Client(cfg)

    # Tetapkan ACL objek.
    result = client.put_object_acl(oss.PutObjectAclRequest(
        bucket=args.bucket,  # Nama bucket.
        key=args.key,  # Kunci objek.
        acl=args.acl,  # Nilai ACL baru.
    ))

    # Cetak informasi keluaran setelah menetapkan ACL.
    print(f'kode status: {result.status_code},'
          f' ID permintaan: {result.request_id},'
          f' ID versi: {result.version_id},'
    )

    # Dapatkan dan cetak pengaturan ACL saat ini dari objek.
    result = client.get_object_acl(oss.GetObjectAclRequest(
        bucket=args.bucket,
        key=args.key,
    ))

    print(f'kode status: {result.status_code},'
          f' ID permintaan: {result.request_id},'
          f' ACL: {result.acl},'
          f' ID versi: {result.version_id},'
    )

# Panggil fungsi utama ketika skrip ini dijalankan langsung.
if __name__ == "__main__":
    main()

Referensi