OSS'de nesnelerin nasıl erişileceğini kontrol etmek için nesnelere erişim izinleri atayabilirsiniz.
Kullanım notları
Webpack ve Browserify gibi paketleme araçlarını kullanırken npm install ali-oss komutunu çalıştırarak Browser.js için OSS SDK'yı yükleyin.
Bir tarayıcıdan OSS paketine erişmek istiyorsanız ancak paket için CORS kuralları yapılandırılmamışsa tarayıcı isteği reddeder. Bu nedenle pakete tarayıcıdan erişmek için paketin CORS kurallarını yapılandırmanız gerekir. Daha fazla bilgi için bkz. Kurulum.
-
Browser.js için OSS SDK çoğunlukla tarayıcılarda kullanılır. AccessKey çiftinizin açığa çıkmasını önlemek amacıyla OSS'e erişirken Güvenlik Belirteci Hizmeti'nden (STS) elde edilen geçici erişim kimlik bilgilerini kullanmanızı öneririz.
Geçici erişim kimlik bilgileri bir AccessKey çifti ve bir güvenlik belirtecinden oluşur. AccessKey çifti bir AccessKey ID ve bir AccessKey Secret içerir. Geçici erişim kimlik bilgilerini nasıl alacağınız hakkında daha fazla bilgi için bkz. Geçici erişim yetkilendirmesi için STS kullanma.
Okuma/yazma izin türleri
Nesneler aşağıdaki dört türde Erişim Kontrol Listesine (ACL) sahiptir:
Bir nesnenin erişim izinleri, ait olduğu paketin erişim izinlerinden önceliklidir. Örneğin bir paket özel (private) olsa bile içindeki bir nesne genel okuma (public-read) iznine sahipse anonim kullanıcılar dahil herkes bu nesneyi okuyabilir.
|
İzin türü |
Açıklama |
İzin değeri |
|
Paketten devral (varsayılan) |
Bir nesne için kendi erişim izinleri ayarlanmamışsa nesne ait olduğu paketin ACL'sini devralır. Nesne paket ile aynı izinlere sahip olur. |
default |
|
Özel |
Yalnızca nesne sahibi nesneyi okuyup yazabilir. Diğer kullanıcılar nesneye erişemez. |
private |
|
Genel okuma |
Yalnızca nesne sahibi nesneye yazabilir. Anonim kullanıcılar dahil herkes nesneyi okuyabilir. Uyarı
İnternetteki herhangi bir kullanıcı nesneye erişebilir. Bu durum veri sızıntılarına ve ücretlerde ani artışlara neden olabilir. Bu izni dikkatli kullanın. |
public-read |
|
Genel okuma-yazma |
Anonim kullanıcılar dahil herkes nesneyi okuyup yazabilir. Uyarı
İnternetteki herhangi bir kullanıcı nesneye erişip üzerine veri yazabilir. Bu durum veri sızıntılarına ve ücretlerde ani artışlara neden olabilir. Kötü niyetli kullanıcılar nesneye yasa dışı bilgiler yazarsa yasal haklarınız ve menfaatleriniz zarar görebilir. Özel senaryolar dışında genel okuma-yazma izinlerini yapılandırmayın. |
public-read-write |
Örnek kod
Bir nesne yüklediğinizde nesnenin ACL'si varsayılan olarak ait olduğu paketin ACL'sini devralır. Nesnenin ACL'sini değiştirmek için putACL yöntemini kullanabilirsiniz.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
</head>
<body>
<script src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.18.0.min.js"></script>
<script>
const client = new OSS({
// Set region to the region where the bucket is located. For example, if the bucket is in the China (Hangzhou) region, set region to oss-cn-hangzhou.
region: "yourRegion",
authorizationV4: true,
// The temporary AccessKey pair (AccessKey ID and AccessKey secret) obtained from Security Token Service (STS).
accessKeyId: "yourAccessKeyId",
accessKeySecret: "yourAccessKeySecret",
// The security token (SecurityToken) obtained from STS.
stsToken: "yourSecurityToken",
// Specify the bucket name. For example, examplebucket.
bucket: "examplebucket",
});
async function getACL() {
try {
result = await client.getACL("examplefile.txt");
console.log(result.acl);
await client.putACL("examplefile.txt", "public-read");
result = await client.getACL("examplefile.txt");
console.log(result.acl);
} catch (e) {
console.log(e);
}
}
getACL();
</script>
</body>
</html>
İlgili konular
Nesne erişim izinlerine ilişkin eksiksiz örnek kodlar için bkz. GitHub örneği.
Nesne erişim izinlerini ayarlamaya yönelik API işlemi hakkında daha fazla bilgi için bkz. PutObjectACL.
Nesne erişim izinlerini almaya yönelik API işlemi hakkında daha fazla bilgi için bkz. GetObjectACL.