Todos os produtos
Search
Central de documentação

Object Storage Service:Configure access credentials (PHP SDK V1)

Última atualização: Oct 15, 2026

Para enviar solicitações ao OSS com o PHP SDK, é necessário configurar credenciais de acesso. Os services da Alibaba Cloud utilizam essas credenciais para verificar sua identidade e permissões de acesso. Escolha entre os diferentes tipos de credenciais de acordo com seus requisitos de autenticação e autorização. Este tópico descreve como configurar credenciais de acesso temporárias e de longo prazo.

Pré-requisitos

Antes de configurar as credenciais de acesso, instale o OSS PHP SDK. Para mais informações, consulte Installation (PHP SDK V1).

Inicializar um provedor de credenciais

Escolha um provedor de credenciais

O OSS oferece suporte a vários métodos para inicializar um provedor de credenciais. Escolha o método mais adequado aos requisitos de autenticação e autorização do seu cenário.

Método de inicialização

Cenário

Requer AccessKey ou token STS existente

Credencial subjacente

Período de validade da credencial

Método de rotação ou atualização da credencial

Method 1: Use an AccessKey pair

Aplicações executadas em ambiente seguro que precisam de acesso de longo prazo aos services da Alibaba Cloud sem rotação frequente de credenciais.

Sim

AccessKey

Longo prazo

Rotação manual

Method 2: Use an STS token

Aplicações executadas em ambiente não confiável onde é necessário controlar o período de validade e as permissões de acesso.

Sim

Token STS

Temporário

Atualização manual

Method 3: Use RAMRoleARN

Aplicações que necessitam de acesso autorizado aos services da Alibaba Cloud, como para acesso entre contas.

Sim

Token STS

Temporário

Atualização automática

Method 4: Use ECSRAMRole

Aplicações executadas em instâncias ECS, instâncias ECI ou nós de trabalho do Container Service for Kubernetes da Alibaba Cloud.

Não

Token STS

Temporário

Atualização automática

Method 5: Use credentials from the Function Compute context

Funções de aplicações executadas no Function Compute da Alibaba Cloud.

Não

Token STS

Temporário

Não requer atualização

Method 6: Use OIDCRoleARN

Aplicações não confiáveis executadas em nós de trabalho do Container Service for Kubernetes.

Não

Token STS

Temporário

Atualização automática

Method 7: Use CredentialsURI

Aplicações que precisam obter credenciais de acesso de um sistema externo.

Não

Token STS

Temporário

Atualização automática

Method 8: Use custom access credentials

Caso os métodos anteriores não atendam às suas necessidades, defina um método personalizado para obter credenciais.

Personalizado

Personalizado

Personalizado

Personalizado

Método 1: Usar um par de AccessKey

Se sua aplicação for executada em um ambiente seguro e exigir acesso de longo prazo ao OSS sem rotação frequente de credenciais, inicialize o provedor de credenciais usando um par de AccessKey de uma conta Alibaba Cloud ou de um usuário do Resource Access Management (RAM). Um par de AccessKey consiste em um AccessKeyID e um AccessKeySecret. Esse método exige a manutenção manual do par de AccessKey, o que pode aumentar os riscos de segurança e a complexidade de manutenção. Para mais informações, consulte CreateAccessKey - Create an AccessKey pair for an Alibaba Cloud account or a RAM user.

Variáveis de ambiente

Aviso

Uma conta Alibaba Cloud possui permissões totais sobre seus resources. Se o par de AccessKey de uma conta Alibaba Cloud for vazado, isso representará uma ameaça crítica à segurança. Recomendamos o uso do par de AccessKey de um usuário RAM com as permissões mínimas necessárias.

  1. Defina as variáveis de ambiente usando um par de AccessKey.

    Mac OS X/Linux/Unix

    export OSS_ACCESS_KEY_ID=<ALIBABA_CLOUD_ACCESS_KEY_ID>
    export OSS_ACCESS_KEY_SECRET=<ALIBABA_CLOUD_ACCESS_KEY_SECRET>

    Windows

    set OSS_ACCESS_KEY_ID=<ALIBABA_CLOUD_ACCESS_KEY_ID>
    set OSS_ACCESS_KEY_SECRET=<ALIBABA_CLOUD_ACCESS_KEY_SECRET>
  2. Transmita as informações da credencial por meio das variáveis de ambiente.

    <?php
    require_once __DIR__ . '/vendor/autoload.php';
    use OSS\Credentials\EnvironmentVariableCredentialsProvider;
    use OSS\OssClient;
    use OSS\Core\OssException;
    
    try {
        // Get access credentials from environment variables and save them in the provider. Before you run this sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are set.
        $provider = new EnvironmentVariableCredentialsProvider();
        // Set Endpoint to the endpoint of the region where the bucket is located. For example, if the bucket is in the China (Hangzhou) region, set Endpoint to https://oss-cn-hangzhou.aliyuncs.com.
        $endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
        $bucket = "bucket";
        $config = array(
            "provider" => $provider,
            "endpoint" => $endpoint,
            "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
            "region"=> "cn-hangzhou"
        );
        $ossClient = new OssClient($config);
        var_dump($ossClient);
    } catch (OssException $e) {
        printf($e->getMessage() . "\n");
        return;
    }
    

Credenciais estáticas

Use variáveis no código para referenciar credenciais. Durante a execução, essas variáveis recebem os valores reais das credenciais provenientes de variáveis de ambiente, arquivos de configuração ou outras fontes de dados externas.

Os passos a seguir mostram um exemplo que utiliza um arquivo de configuração.

  1. Crie um arquivo de configuração chamado config.ini.

    [credentials]
    alibaba_cloud_access_key_id = <ALIBABA_CLOUD_ACCESS_KEY_ID>
    alibaba_cloud_access_key_secret = <ALIBABA_CLOUD_ACCESS_KEY_SECRET>
  2. Transmita as informações da credencial usando o arquivo de configuração.

    <?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\StaticCredentialsProvider;
    use OSS\OssClient;
    use OSS\Core\OssException;
    
    try {
        $config = parse_ini_file('config.ini');
        // Get the AccessKey ID and AccessKey secret.
        $accessKeyId = $config['alibaba_cloud_access_key_id'];
        $accessKeySecret = $config['alibaba_cloud_access_key_secret'];
        $provider = new StaticCredentialsProvider($accessKeyId,$accessKeySecret);
        $endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
        $config = array(
            "provider" => $provider,
            "endpoint" => $endpoint,
            "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
            "region"=> "cn-hangzhou"
        );
        $ossClient = new OssClient($config);
        printf($ossClient);
    } catch (OssException $e) {
        printf($e->getMessage() . "\n");
        return;
    }
    

Método 2: Usar um token STS

Caso sua aplicação precise de acesso temporário ao OSS, inicialize o provedor de credenciais utilizando credenciais de identidade temporárias do Security Token Service (STS). Essas credenciais incluem um AccessKeyID, um AccessKeySecret e um token de segurança. Esse método requer a manutenção manual do token STS, o que pode elevar os riscos de segurança e a complexidade de manutenção. Para acessar o OSS várias vezes, atualize manualmente o token STS. Para mais informações, consulte AssumeRole - Get temporary identity credentials for a RAM role.

  1. Defina as variáveis de ambiente usando credenciais de identidade temporárias.

    Mac OS X/Linux/Unix

    export OSS_ACCESS_KEY_ID=<ALIBABA_CLOUD_ACCESS_KEY_ID>
    export OSS_ACCESS_KEY_SECRET=<ALIBABA_CLOUD_ACCESS_KEY_SECRET>
    export OSS_SESSION_TOKEN=<ALIBABA_CLOUD_SECURITY_TOKEN>

    Windows

    set OSS_ACCESS_KEY_ID=<ALIBABA_CLOUD_ACCESS_KEY_ID>
    set OSS_ACCESS_KEY_SECRET=<ALIBABA_CLOUD_ACCESS_KEY_SECRET>
    set OSS_SESSION_TOKEN=<ALIBABA_CLOUD_SECURITY_TOKEN>
  2. Transmita as informações da credencial por meio das variáveis de ambiente.

    <?php
    require_once __DIR__ . '/vendor/autoload.php';
    use OSS\Credentials\EnvironmentVariableCredentialsProvider;
    use OSS\OssClient;
    use OSS\Core\OssException;
    
    try {
        // Get access credentials from environment variables and save them in the provider. Before you run this sample code, make sure that the OSS_ACCESS_KEY_ID, OSS_ACCESS_KEY_SECRET, and OSS_SESSION_TOKEN environment variables are set.
        $provider = new EnvironmentVariableCredentialsProvider();
        // Set Endpoint to the endpoint of the region where the bucket is located. For example, if the bucket is in the China (Hangzhou) region, set Endpoint to https://oss-cn-hangzhou.aliyuncs.com.
        $endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
        $bucket = "bucket";
        $config = array(
            "provider" => $provider,
            "endpoint" => $endpoint,
            "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
            "region"=> "cn-hangzhou"
        );
        $ossClient = new OssClient($config);
        var_dump($ossClient);
    } catch (OssException $e) {
        printf($e->getMessage() . "\n");
        return;
    }
    

Método 3: Usar RAMRoleARN

Importante

Este método requer alibabacloud/credentials 1.2.0 ou posterior.

Quando sua aplicação precisar de autorização para acessar o OSS, como em casos de acesso entre contas, utilize RAMRoleARN para inicializar o provedor de credenciais. Esse método usa um token STS como credencial subjacente. Ao especificar o Alibaba Cloud Resource Name (ARN) de uma função RAM, a ferramenta Credentials recupera um token STS do STS e o atualiza automaticamente antes da expiração. Também é possível atribuir um valor ao parâmetro policy para restringir a função RAM a um conjunto menor de permissões. Esse método exige o fornecimento de um par de AccessKey, o que pode aumentar os riscos de segurança e a complexidade de manutenção. Para mais informações sobre como obter um par de AccessKey, consulte CreateAccessKey - Create an AccessKey pair for a RAM user. Para mais informações sobre como obter um RAMRoleARN, consulte CreateRole - Create a RAM role.

  1. Adicione a dependência do cliente de credenciais.

    composer require alibabacloud/credentials
  2. Configure as credenciais de acesso.

    <?php
    
    require_once __DIR__ . '/vendor/autoload.php';
    
    use AlibabaCloud\Credentials\Credential;
    use OSS\Core\OssException;
    use OSS\OssClient;
    use OSS\Credentials\CredentialsProvider;
    use OSS\Credentials\StaticCredentialsProvider;
    
    class AlibabaCloudCredentialsWrapper implements CredentialsProvider
    {
        /**
         * @var Credential
         */
        private $wrapper;
    
        public function __construct($wrapper)
        {
            $this->wrapper = $wrapper;
        }
    
        public function getCredentials()
        {
            $cred = $this->wrapper->getCredential();
            $ak = $cred->getAccessKeyId();
            $sk = $cred->getAccessKeySecret();
            $token = $cred->getSecurityToken();
            return new StaticCredentialsProvider($ak, $sk, $token);
        }
    }
    
    try {
        $config = new Credential\Config([
            // The credential type. Set the value to ram_role_arn.
            'type' => 'ram_role_arn',
            // Get the AccessKey pair (AccessKey ID and AccessKey secret) of the RAM user from environment variables.
            'accessKeyId' => getenv('OSS_ACCESS_KEY_ID'),
            'accessKeySecret' => getenv('OSS_ACCESS_KEY_SECRET'),
            // Get the ARN of the RAM role from the environment variable. This is the ID of the role to assume, in the format acs:ram::$accountID:role/$roleName.
            'roleArn' => getenv('OSS_STS_ROLE_ARN'),
            // A custom role session name to distinguish different tokens.
            'roleSessionName' => 'yourRoleSessionName',
            // A custom access policy.
            'policy' => '',
        ]);
    
        $credential = new Credential($config);
        $providerWrapper = new AlibabaCloudCredentialsWrapper($credential);
        $provider = $providerWrapper->getCredentials();
        $config = array(
            'provider' => $provider,
            // For example, if the bucket is in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com. For other regions, use the actual endpoint.
            'endpoint' => 'https://oss-cn-hangzhou.aliyuncs.com'
            "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
            "region"=> "cn-hangzhou"
        );
        $ossClient = new OssClient($config);
        var_dump($ossClient);
    } catch (OssException $e) {
        print $e->getMessage();
    }

Método 4: Usar ECSRAMRole

Nota

Este método requer alibabacloud/credentials 1.2.0 ou posterior.

Se a aplicação for executada em uma instância ECS, instância ECI ou nó de trabalho do Container Service for Kubernetes, use ECSRAMRole para inicializar o provedor de credenciais. Esse método utiliza um token STS como credencial subjacente. O ECSRAMRole permite anexar uma função RAM a uma instância ECS, instância ECI ou nó de trabalho do Container Service for Kubernetes para atualizar automaticamente o token STS na instância. Essa abordagem elimina os riscos associados à manutenção manual de um par de AccessKey ou de um token STS. Para mais informações sobre como obter um ECSRAMRole, consulte CreateRole - Create a RAM role.

  1. Adicione a dependência do cliente de credenciais.

    composer require alibabacloud/credentials
  2. Configure o ECSRAMRole como credencial de acesso.

    <?php
    
    require_once __DIR__ . '/vendor/autoload.php';
    
    use AlibabaCloud\Credentials\Credential;
    use OSS\Core\OssException;
    use OSS\OssClient;
    use OSS\Credentials\CredentialsProvider;
    use OSS\Credentials\StaticCredentialsProvider;
    
    class AlibabaCloudCredentialsWrapper implements CredentialsProvider
    {
        /**
         * @var Credential
         */
        private $wrapper;
    
        public function __construct($wrapper)
        {
            $this->wrapper = $wrapper;
        }
    
        public function getCredentials()
        {
            $cred = $this->wrapper->getCredential();
            $ak = $cred->getAccessKeyId();
            $sk = $cred->getAccessKeySecret();
            $token = $cred->getSecurityToken();
            return new StaticCredentialsProvider($ak, $sk, $token);
        }
    }
    
    try {
        $config = new Credential\Config([
            // The credential type. Set the value to ecs_ram_role.
            'type' => 'ecs_ram_role',
            'roleName' => "<role_name>",
        ]);
        $credential = new Credential($config);
        $providerWrapper = new AlibabaCloudCredentialsWrapper($credential);
        $provider = $providerWrapper->getCredentials();
        $config = array(
            'provider' => $provider,
            // For example, if the bucket is in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com. For other regions, use the actual endpoint.
            'endpoint' => 'https://oss-cn-hangzhou.aliyuncs.com'
            "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
            "region"=> "cn-hangzhou"
        );
        $ossClient = new OssClient($config);
        var_dump($ossClient);
    } catch (OssException $e) {
        print $e->getMessage();
    }

Método 5: Usar credenciais do contexto do Function Compute

Quando a função da sua aplicação for executada no Function Compute, utilize as credenciais presentes no contexto da função para inicializar o provedor de credenciais. Esse método emprega um token STS como credencial subjacente. O Function Compute obtém um token STS assumindo uma função de service com base na configuração da função. Em seguida, o token STS é transmitido à sua aplicação por meio do parâmetro Credentials no contexto. O token STS tem validade de 36 horas, e esse período não pode ser alterado. Como o tempo máximo de execução de uma função é de 24 horas, o token STS não expira durante a execução da função, eliminando a necessidade de atualização. Esse método remove os riscos ligados à manutenção manual de um par de AccessKey ou de um token STS. Para mais informações sobre como conceder permissões ao Function Compute para acessar o OSS, consulte Use a function role to grant Function Compute permissions to access other Alibaba Cloud services.

  • Inicialize o provedor de credenciais usando as credenciais do contexto do Function Compute.

    <?php
    
    use OSS\OssClient;
    use OSS\Core\OssException;
    
    function handler($event, $context) {
        /*
          An AccessKey pair of an Alibaba Cloud account has permissions on all API operations. We recommend that you use a RAM user for API access or routine O&M.
          Do not hard-code your AccessKey ID and AccessKey secret in your project code. Otherwise, the AccessKey pair may be leaked and the security of all your resources may be compromised.
          This example shows how to get the AccessKey ID and AccessKey secret from the context.
        */
        $creds = $context["credentials"];
        $accessKeyId = $creds["accessKeyId"];
        $accessKeySecret = $creds["accessKeySecret"];
        $securityToken = $creds["securityToken"];
        $endpoint = "https://oss-cn-hangzhou-internal.aliyuncs.com";
    
        try{
            $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint, false, $securityToken);
            print_r($ossClient);
        } catch(OssException $e) {
            printf(__FUNCTION__ . ": FAILED\n");
            printf($e->getMessage() . "\n");
            return $e->getMessage();
        }
        return 'hello world';
    }

Método 6: Usar OIDCRoleARN

Nota

Este método requer alibabacloud/credentials 1.2.0 ou posterior.

Após configurar uma função RAM para um nó de trabalho do Container Service for Kubernetes, as aplicações nos pods desse nó podem obter o token STS da função associada diretamente do servidor de metadados. Isso funciona de maneira semelhante às aplicações em uma instância ECS. No entanto, se aplicações não confiáveis forem implantadas no cluster, talvez você não queira que elas obtenham o token STS da função RAM da instância pelo servidor de metadados. Um exemplo seria uma application enviada por um cliente cujo código não está acessível a você. Para proteger seus resources cloud e permitir que essas aplicações não confiáveis obtenham com segurança os tokens STS necessários com permissões mínimas, utilize o recurso RAM Roles for Service Account (RRSA). Esse método usa um token STS como credencial subjacente. Um cluster de contêineres da Alibaba Cloud cria e monta o arquivo de token OpenID Connect (OIDC) da conta de service correspondente para cada pod de aplicação. Ele também injeta as informações de configuração nas variáveis de ambiente. A ferramenta Credentials recupera a configuração das variáveis de ambiente e chama a operação AssumeRoleWithOIDC do STS para trocar o token OIDC por um token STS da função vinculada. Essa abordagem elimina os riscos associados à manutenção manual de um par de AccessKey ou de um token STS. Para mais informações, consulte Pod permission isolation based on RRSA.

  1. Adicione a dependência do cliente de credenciais.

    composer require alibabacloud/credentials
  2. O código de exemplo a seguir mostra como configurar a função RAM de um provedor OIDC como credencial de acesso.

    <?php
    
    require_once __DIR__ . '/vendor/autoload.php';
    
    use OSS\Credentials\CredentialsProvider;
    use AlibabaCloud\Credentials\Credential;
    use OSS\Credentials\StaticCredentialsProvider;
    use OSS\Core\OssException;
    use OSS\OssClient;
    
    class AlibabaCloudCredentialsWrapper implements CredentialsProvider
    {
        /**
         * @var Credential
         */
        private $wrapper;
    
        public function __construct($wrapper)
        {
            $this->wrapper = $wrapper;
        }
    
        public function getCredentials()
        {
            $cred = $this->wrapper->getCredential();
            $ak = $cred->getAccessKeyId();
            $sk = $cred->getAccessKeySecret();
            $token = $cred->getSecurityToken();
            return new StaticCredentialsProvider($ak, $sk, $token);
        }
    }
    
    try {
        // Initialize the Credentials Client using OIDCRoleArn.
        $config = new Credential\Config([
            // The credential type.
            'type' => 'oidc_role_arn',
            // The ARN of the OIDC provider. You can set oidc_provider_arn using the ALIBABA_CLOUD_OIDC_PROVIDER_ARN environment variable.
            'oidcProviderArn' => '<OidcProviderArn>',
            // The path of the OIDC token file. You can set oidc_token_file_path using the ALIBABA_CLOUD_OIDC_TOKEN_FILE environment variable.
            'oidcTokenFilePath' => '<OidcTokenFilePath>',
            // The ARN of the RAM role. Example: acs:ram::123456789012****:role/adminrole. You can set role_arn using the ALIBABA_CLOUD_ROLE_ARN environment variable.
            'roleArn' => '<RoleArn>',
            // The role session name. You can set role_session_name using the ALIBABA_CLOUD_ROLE_SESSION_NAME environment variable.
            'roleSessionName' => '<RoleSessionName>',
            // Optional. A smaller access policy. Example: {"Statement": [{"Action": ["*"],"Effect": "Allow","Resource": ["*"]}],"Version":"1"}
            'policy' => '<Policy>',
            # Set the session expiration time.
            'durationSeconds' => 3600,
        ]);
        $credential = new Credential($config);
        $providerWrapper = new AlibabaCloudCredentialsWrapper($credential);
        $provider = $providerWrapper->getCredentials();
        $config = array(
            'provider' => $provider,
            // For example, if the bucket is in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com. For other regions, use the actual endpoint.
            'endpoint' => 'https://oss-cn-hangzhou.aliyuncs.com'
            "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
            "region"=> "cn-hangzhou"
        );
        $ossClient = new OssClient($config);
        var_dump($ossClient);
    } catch (OssException $e) {
        print $e->getMessage();
    }

Método 7: Usar CredentialsURI

Nota

Este método requer alibabacloud/credentials 1.2.0 ou posterior.

Caso sua aplicação precise obter credenciais da Alibaba Cloud de um sistema externo para gerenciamento flexível de credenciais e acesso sem chaves, use CredentialsURI para inicializar o provedor de credenciais. Esse método utiliza um token STS como credencial subjacente. A ferramenta Credentials obtém um token STS da URI fornecida para inicializar o cliente de credenciais. Tal método elimina os riscos relacionados à manutenção manual de um par de AccessKey ou de um token STS. O service de backend que fornece a resposta do CredentialsURI deve implementar a lógica para atualizar automaticamente o token STS. Isso garante que sua aplicação tenha sempre uma credencial válida.

  1. Adicione a dependência do cliente de credenciais.

    composer require alibabacloud/credentials
  2. O código de exemplo a seguir demonstra como configurar o CredentialsURI como credencial de acesso.

    <?php
    
    require_once __DIR__ . '/vendor/autoload.php';
    
    use AlibabaCloud\Credentials\Credential;
    use OSS\Core\OssException;
    use OSS\Credentials\CredentialsProvider;
    use OSS\Credentials\StaticCredentialsProvider;
    use OSS\OssClient;
    
    class AlibabaCloudCredentialsWrapper implements CredentialsProvider
    {
        /**
         * @var Credential
         */
        private $wrapper;
    
        public function __construct($wrapper)
        {
            $this->wrapper = $wrapper;
        }
    
        public function getCredentials()
        {
            $cred = $this->wrapper->getCredential();
            $ak = $cred->getAccessKeyId();
            $sk = $cred->getAccessKeySecret();
            $token = $cred->getSecurityToken();
            return new StaticCredentialsProvider($ak, $sk, $token);
        }
    }
    
    try {
        $config = new Credential\Config([
            // The credential type.
            'type' => 'credentials_uri',
            // The URI of the credential, in the format http://local_or_remote_uri/. You can set credentials_uri using the ALIBABA_CLOUD_CREDENTIALS_URI environment variable.
            'credentialsURI' => '<CredentialsUri>',
        ]);
        $credential = new Credential($config);
        $providerWrapper = new AlibabaCloudCredentialsWrapper($credential);
        $provider = $providerWrapper->getCredentials();
        $config = array(
            'provider' => $provider,
            // For example, if the bucket is in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com. For other regions, use the actual endpoint.
            'endpoint' => 'https://oss-cn-hangzhou.aliyuncs.com'
            "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
            "region"=> "cn-hangzhou"
        );
        $ossClient = new OssClient($config);
        var_dump($ossClient);
    } catch (OssException $e) {
        print $e->getMessage();
    }

Método 8: Usar credenciais de acesso personalizadas

Se nenhum dos métodos anteriores atender aos seus requisitos, defina um provedor de credenciais personalizado implementando a interface Credential Providers.

<?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\CredentialsProvider;
use OSS\Credentials\Credentials;
use OSS\OssClient;
use OSS\Core\OssException;

class CustomerCredentialsProvider implements CredentialsProvider
{
  public function getCredentials()
  {
    // Return long-term credentials.
    return new Credentials('id', 'secret');
    // Return temporary credentials.
    //return new Credentials('id', 'secret', 'token');
  }
}

$provider = new CustomerCredentialsProvider();

try {
  $provider = new CustomerCredentialsProvider();
  $endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
  $config = array(
    "provider" => $provider,
    "endpoint" => $endpoint,
    "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
    "region"=> "cn-hangzhou"
  );
  $ossClient = new OssClient($config);
  printf($ossClient);
} catch (OssException $e) {
  printf($e->getMessage() . "\n");
  return;
}

Próximos passos

Após inicializar o provedor de credenciais, utilize-o para criar uma instância OSSClient. Para mais informações, consulte Initialization (PHP SDK V1).