Todos os produtos
Search
Central de documentação

Object Storage Service:Baixe um objeto para um arquivo local (PHP SDK V1)

Última atualização: Jul 03, 2026

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

Observações de uso

  • Este tópico utiliza o endpoint público da região China (Hangzhou). Para acessar o OSS a partir de outros serviços da Alibaba Cloud na mesma região, utilize um endpoint interno. Para obter detalhes sobre as regiões e endpoints suportados, consulte Regiões e endpoints.

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

Permissões

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

API

Ação

Descrição

GetObject

oss:GetObject

Baixa um objeto.

oss:GetObjectVersion

Necessária ao baixar um objeto caso você especifique a versão do objeto por meio do versionId.

kms:Decrypt

Exigida quando os metadados do objeto contêm X-Oss-Server-Side-Encryption: KMS durante o download.

Código de exemplo

O código a seguir baixa o objeto testfolder/exampleobject.txt do bucket examplebucket. O objeto é salvo 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?

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

Referências

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

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