Object Storage Service (OSS), paket düzeyindeki erişim kontrol listelerine (ACL) ek olarak nesne düzeyinde ACL'ler de sunar. Bir nesneyi yüklerken ACL'sini yapılandırabilir veya yükleme sonrasında ACL'sini değiştirebilirsiniz.
Nesne ACL'leri
Bir nesnenin dört okuma/yazma izni bulunur:
Nesnenin ACL'si, nesnenin depolandığı paketin ACL'sinden önceliklidir. Örneğin, özel bir paketteki bir nesnenin ACL'si public-read olarak ayarlanırsa anonim kullanıcılar dahil tüm kullanıcılar bu nesneyi okuyabilir.
İzin türü | Açıklama | İzin değeri |
Paketten devralınan | Bir nesnenin ACL'sini yapılandırmazsanız nesnenin ACL'si, nesnenin depolandığı paketin ACL'si ile aynı olur. | Aliyun::OSS::ACL::DEFAULT |
Özel | Nesne üzerinde okuma ve yazma işlemlerini yalnızca nesne sahibi yapabilir. Diğer kullanıcılar nesneye erişemez. | Aliyun::OSS::ACL::PRIVATE |
Public-read | Nesne üzerinde yazma işlemlerini yalnızca nesne sahibi yapabilir. Anonim kullanıcılar dahil diğer kullanıcılar nesneyi yalnızca okuyabilir. Uyarı Bu durum yetkisiz erişime ve beklenmeyen maliyetlere neden olabilir. Bu ACL'yi kullanırken dikkatli olun. | Aliyun::OSS::ACL::PUBLIC_READ |
Public-read-write | Anonim kullanıcılar dahil tüm kullanıcılar nesne üzerinde okuma ve yazma işlemleri yapabilir. Uyarı Bu ACL, tüm kullanıcıların nesneye İnternet üzerinden erişmesine ve veri yazmasına olanak tanır; bu durum yetkisiz erişime, beklenmeyen maliyetlere veya yasaklı içeriklerin yüklenmesine neden olabilir. Gerekmeyen durumlarda nesne ACL'sini public-read-write olarak ayarlamayın. | Aliyun::OSS::ACL::PUBLIC_READ_WRITE |
Örnekler
Aşağıdaki kod, bir nesnenin ACL'sinin nasıl yapılandırılacağını ve alınacağını gösterir:
require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
# The China (Hangzhou) region is used as an example. Replace the endpoint with the one for your region.
endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
# Obtain access credentials from environment variables. Before you run this sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are set.
access_key_id: ENV['OSS_ACCESS_KEY_ID'],
access_key_secret: ENV['OSS_ACCESS_KEY_SECRET']
)
# Specify the bucket name. For example, examplebucket.
bucket = client.get_bucket('examplebucket')
# Specify the full path of the object. The full path cannot contain the bucket name. For example, exampledir/example.txt.
# Get the ACL of the object that is set during the upload.
acl = bucket.get_object_acl('exampledir/example.txt')
puts acl
# Modify the ACL of the object.
bucket.set_object_acl('exampledir/example.txt', Aliyun::OSS::ACL::PUBLIC_READ)
acl = bucket.get_object_acl('exampledir/example.txt')
puts acl
İlgili Konular
Bir nesnenin ACL'sini yapılandırmak için çağırabileceğiniz API işlemi hakkında daha fazla bilgi için bkz. PutObjectACL.
Bir nesnenin ACL'sini sorgulamak için çağırabileceğiniz API işlemi hakkında daha fazla bilgi için bkz. GetObjectACL.