全部产品
Search
文档中心

Object Storage Service:Mengelola izin akses file (Python SDK V1)

更新时间:Nov 29, 2025

Topik ini menjelaskan cara mengelola izin akses file.

Informasi latar belakang

File mendukung empat jenis daftar kontrol akses (ACL) berikut:

Access permission

Description

ACL value

Inherit from bucket

File mewarisi ACL dari bucket.

oss2.OBJECT_ACL_DEFAULT

Private

Hanya pemilik file dan pengguna yang berwenang yang memiliki izin baca dan tulis pada file tersebut. Pengguna lain tidak dapat mengakses file tersebut.

oss2.OBJECT_ACL_PRIVATE

Public-read

Pemilik file dan pengguna yang berwenang memiliki izin baca dan tulis pada file tersebut. Pengguna lain hanya memiliki izin baca pada file tersebut. Gunakan izin ini dengan hati-hati.

oss2.OBJECT_ACL_PUBLIC_READ

Public-read-write

Semua pengguna memiliki izin baca dan tulis pada file tersebut. Gunakan izin ini dengan hati-hati.

oss2.OBJECT_ACL_PUBLIC_READ_WRITE

ACL suatu file memiliki prioritas lebih tinggi daripada ACL bucket. Misalnya, jika sebuah bucket bersifat private tetapi file di dalamnya memiliki izin public-read-write, semua pengguna memiliki izin baca dan tulis terhadap file tersebut. Jika suatu file tidak memiliki ACL, file tersebut akan mewarisi ACL dari bucket.

Catatan penggunaan

  • Pada topik ini, digunakan titik akhir publik wilayah China (Hangzhou). Jika Anda ingin mengakses OSS dari layanan Alibaba Cloud lainnya yang berada di wilayah yang sama dengan OSS, gunakan titik akhir internal. Untuk informasi selengkapnya mengenai wilayah dan titik akhir OSS, lihat Regions and endpoints.

  • Pada topik ini, kredensial akses diperoleh dari variabel lingkungan. Untuk informasi selengkapnya mengenai cara mengonfigurasi kredensial akses, lihat Configure access credentials using OSS SDK for Python 1.0.

  • 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 Initialization.

  • Untuk mengonfigurasi ACL suatu objek, Anda harus memiliki izin oss:PutObjectAcl. Untuk menanyakan ACL suatu objek, Anda harus memiliki izin oss:GetObjectAcl. Untuk informasi selengkapnya, lihat Attach a custom policy to a RAM user.

Menetapkan izin akses file

Kode berikut memberikan contoh cara menetapkan ACL suatu objek:

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())

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

# Tentukan wilayah tempat bucket berada, seperti cn-hangzhou. Perhatikan bahwa parameter ini wajib untuk tanda tangan V4.
region = "cn-hangzhou"

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

# Ganti yourObjectName dengan path lengkap objek. Path lengkap tidak boleh mengandung nama bucket.
bucket.put_object_acl('yourObjectName', oss2.OBJECT_ACL_PUBLIC_READ)

Mendapatkan izin akses file

Kode berikut memberikan contoh cara menanyakan ACL suatu objek:

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())

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

# Tentukan wilayah tempat bucket berada, seperti cn-hangzhou. Perhatikan bahwa parameter ini wajib untuk tanda tangan V4.
region = "cn-hangzhou"

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

# Ganti yourObjectName dengan path lengkap objek. Path lengkap tidak boleh mengandung nama bucket.
print(bucket.get_object_acl('yourObjectName').acl)

Referensi

  • Untuk informasi selengkapnya mengenai operasi API untuk menetapkan izin akses file, lihat PutObjectACL.

  • Untuk informasi selengkapnya mengenai operasi API untuk mengambil izin akses file, lihat GetObjectACL.