Todos os produtos
Search
Central de documentação

Object Storage Service:Download an object to a local file (PHP SDK V1)

Última atualização: Sep 22, 2026

Este tópico descreve como baixe um objeto de um bucket para um arquivo local.

Observações de uso

  • Neste tópico, utiliza-se o endpoint público da região china (Hangzhou). Para acessar o OSS a partir de outros service Alibaba Cloud na mesma região, use um endpoint interno. Para mais detalhes sobre regiões e endpoints compatíveis, consulte Regions and endpoints.

  • Este tópico demonstra como crie uma instância OSSClient com um endpoint do OSS. Para configurações alternativas, como o uso de um domínio personalizado ou autenticação com credenciais do Security Token Service (STS), consulte Create an OssClient.

Permissões

Por padrão, uma conta Alibaba Cloud possui permissões completas. Usuários RAM ou funções RAM vinculados a uma conta Alibaba Cloud não possuem nenhuma permissão por padrão. A conta Alibaba Cloud ou o administrador da conta deve conceder as permissões de operação por meio de RAM policies ou Bucket Policy.

API

Action

Descrição

GetObject

oss:GetObject

Baixe um objeto.

oss:GetObjectVersion

Ao baixar um objeto, se você especifique a versão do objeto por meio do versionId, essa permissão será necessária.

kms:Decrypt

Ao baixar um objeto, se os metadados do objeto contiverem X-Oss-Server-Side-Encryption: KMS, essa permissão será necessária.

Código de exemplo

O código a seguir baixe o objeto testfolder/exampleobject.txt do bucket examplebucket. O objeto é salve como examplefile.txt no diretório local D:\localpath.

<?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;

// 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.
$provider = new EnvironmentVariableCredentialsProvider();
// Specify the Endpoint for the region where the bucket is located. For example, for the China (Hangzhou) region, set the Endpoint to https://oss-cn-hangzhou.aliyuncs.com.
$endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Specify the bucket name. Example: examplebucket.
$bucket= "examplebucket";
// Specify the full path of the object. Do not include the bucket name. Example: testfolder/exampleobject.txt.
$object = "testfolder/exampleobject.txt";
// Download the object to a local file named examplefile.txt and save it to the specified local path (D:\\localpath). If the local file exists, it is overwritten. If it does not exist, it is created.
// If you do not specify a local path, the downloaded file is saved to the local path of the project where the sample program resides.
$localfile = "D:\\localpath\\examplefile.txt";
$options = array(
        OssClient::OSS_FILE_DOWNLOAD => $localfile
    );

// Use a try-catch block to catch exceptions. If an exception is caught, the download failed. If no exception is caught, the download is successful.
try{
    $config = array(
        "provider" => $provider,
        "endpoint" => $endpoint,
        "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
        "region"=> "cn-hangzhou"
    );
    $ossClient = new OssClient($config);

    $ossClient->getObject($bucket, $object, $options);
} catch(OssException $e) {
    printf(__FUNCTION__ . ": FAILED\n");
    printf($e->getMessage() . "\n");
    return;
}
print(__FUNCTION__ . ": OK, please check localfile: 'examplefile.txt'" . "\n");
        

Perguntas frequentes

Como renomear um arquivo durante o download?

Use o parâmetro $localfile no código de exemplo para renomear o arquivo baixado. Por exemplo, para baixe exampleobject.txt de um bucket e salve como examplefile.txt em um caminho local específico, defina o parâmetro como $localfile = "D:\\localpath\\examplefile.txt";.

Referências

  • Para obter o código de exemplo completo sobre como baixe um objeto para um arquivo local, consulte o exemplo no GitHub.

  • Para mais informações sobre a operação de API usada para baixe um objeto para um arquivo local, consulte GetObject.