Tüm Ürünler
Search
Belge Merkezi

Object Storage Service:Manage file access permissions (PHP SDK V1)

Son Güncelleme:Oct 01, 2026

Bu konuda dosya erişim izinlerinin nasıl yönetileceği açıklanmaktadır.

Ön koşullar

  • Bu konuda Çin (Hangzhou) bölgesinin genel uç noktası kullanılmaktadır. Aynı bölgedeki diğer Alibaba Cloud hizmetlerinden OSS'e erişmek için dahili bir uç nokta kullanın. Desteklenen bölgeler ve uç noktalar hakkında daha fazla bilgi için bkz. Bölgeler ve uç noktalar.

  • Bu konuda, bir OSS uç noktası kullanarak bir OssClient örneğinin nasıl oluşturulacağı gösterilmektedir. Özel etki alanı kullanma veya Security Token Service (STS) kimlik bilgileriyle kimlik doğrulama gibi alternatif yapılandırmalar için bkz. OssClient oluşturma.

  • Dosya erişim izinlerini ayarlamak için oss:PutObjectAcl iznine sahip olmanız gerekir. Dosya erişim izinlerini görüntülemek için oss:GetObjectAcl iznine sahip olmanız gerekir. Daha fazla bilgi için bkz. RAM kullanıcılarına özel erişim ilkeleri atama.

Erişim denetim listesi türleri

Dosyaların dört tür erişim denetim listesi (ACL) bulunur:


Erişim izinleri


Açıklama


Erişim izni değeri


Paketten Devral


Dosya, paketin erişim izinlerini devralır.


default


Özel


Dosya sahibi ve yetkilendirilmiş kullanıcılar dosyada okuma ve yazma izinlerine sahiptir. Diğer kullanıcılar dosyaya erişemez.


private


Genel-okuma


Dosya sahibi ve yetkilendirilmiş kullanıcılar dosyada okuma ve yazma izinlerine sahiptir. Diğer kullanıcıların yalnızca okuma izni vardır. Bu izni dikkatli kullanın.


public-read


Genel-okuma-yazma


Tüm kullanıcılar dosyada okuma ve yazma izinlerine sahiptir. Bu izni dikkatli kullanın.


public-read-write

Dosya ACL'leri, paket ACL'lerinden daha yüksek önceliğe sahiptir. Örneğin, bir paket özel ancak paketteki bir dosya genel-okuma-yazma olarak ayarlanmışsa tüm kullanıcıların bu dosyada okuma ve yazma izni olur. Bir dosyanın yapılandırılmış bir ACL'si yoksa dosya, ait olduğu paketin ACL'sini devralır.

Dosya erişim izinlerini ayarlama

Aşağıdaki örnek kod, bir nesnenin ACL'sini nasıl yapılandıracağınızı gösterir:

<?php
if (is_file(__DIR__ . '/../autoload.php')) {
    require_once __DIR__ . '/../autoload.php';
}
if (is_file(__DIR__ . '/../vendor/autoload.php')) {
    require_once __DIR__ . '/../vendor/autoload.php';
}
use OSS\Credentials\EnvironmentVariableCredentialsProvider;
use OSS\OssClient;
use OSS\Core\OssException;

// Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured. 
$provider = new EnvironmentVariableCredentialsProvider();
// The Endpoint is set to China (Hangzhou) in this example. Specify the actual Endpoint.
$endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
$bucket= "yourBucketName";
$object = "yourObjectName";
// Set the file ACL to public-read. The default is to inherit the bucket's ACL.
$acl = "public-read";
try {
    $config = array(
        "provider" => $provider,
        "endpoint" => $endpoint,
        "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
        "region"=> "cn-hangzhou"
    );
    $ossClient = new OssClient($config);

    $ossClient->putObjectAcl($bucket, $object, $acl);
} catch (OssException $e) {
    printf(__FUNCTION__ . ": FAILED\n");
    printf($e->getMessage() . "\n");
    return;
}
print(__FUNCTION__ . ": OK" . "\n");
            

Dosya erişim izinlerini alma

Aşağıdaki örnek kod, bir nesnenin ACL'sini nasıl sorgulayacağınızı gösterir:

<?php
if (is_file(__DIR__ . '/../autoload.php')) {
    require_once __DIR__ . '/../autoload.php';
}
if (is_file(__DIR__ . '/../vendor/autoload.php')) {
    require_once __DIR__ . '/../vendor/autoload.php';
}
use OSS\Credentials\EnvironmentVariableCredentialsProvider;
use OSS\OssClient;
use OSS\Core\OssException;

// Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured. 
$provider = new EnvironmentVariableCredentialsProvider();
// The Endpoint is set to China (Hangzhou) in this example. Specify the actual Endpoint.
$endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
$bucket= "yourBucketName";
$object = "yourObjectName";
try {
    $config = array(
        "provider" => $provider,
        "endpoint" => $endpoint,
        "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
        "region"=> "cn-hangzhou"
    );
    $ossClient = new OssClient($config);

    $objectAcl = $ossClient->getObjectAcl($bucket, $object);
} catch (OssException $e) {
    printf(__FUNCTION__ . ": FAILED\n");
    printf($e->getMessage() . "\n");
    return;
}
print(__FUNCTION__ . ": OK" . "\n");
var_dump($objectAcl);