Todos os produtos
Search
Central de documentação

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

Última atualização: Jul 03, 2026

Por padrão, uma chamada à operação GetObject em um bucket com versionamento habilitado retorna apenas a versão atual de um objeto.

Precauções

  • 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, use 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 um domínio personalizado ou autenticação com credenciais do Security Token Service (STS), consulte Crie um OssClient.

  • Para baixe um arquivo, você deve ter a permissão oss:GetObject. Para mais informações, consulte Conceder permissões personalizadas a um usuário RAM.

Informações de fundo

Ao chamar a operação GetObject em um bucket, ocorre um dos três cenários a seguir:

  • Se a versão atual do objeto no bucket for um marcador de exclusão, o OSS retornará 404 Not Found.

  • Caso você especifique o ID de versão de um objeto em um parâmetro de consulta, o OSS retornará essa versão específica do objeto. Se defina o ID de versão como "null", o OSS retornará a versão do objeto que possui o ID de versão "null".

  • Ao tentar recuperar um marcador de exclusão especificando seu ID de versão, o OSS retornará 405 Method Not Allowed.

Código de exemplo

O código a seguir mostra como baixe um arquivo:

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

// 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 set. 
$provider = new EnvironmentVariableCredentialsProvider();
// The endpoint is set to China (Hangzhou) in this example. Set the endpoint to the one for your region.
$endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
$bucket= "<yourBucketName>";
// Specify the full path of the object. The full path does not include the bucket name. Example: example/test.txt.
$object = "<yourObjectName>";
// Specify the version ID of the object.
$versionId = "<yourObjectVersionId>";

$config = array(
        "provider" => $provider,
        "endpoint" => $endpoint,
        "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
        "region"=> "cn-hangzhou"
    );
    $ossClient = new OssClient($config);

try{
    // Download the object of the specified version.
    $content = $ossClient->getObject($bucket, $object, array(OssClient::OSS_VERSION_ID => $versionId));
    print($content);
} catch(OssException $e) {
    printf(__FUNCTION__ . ": FAILED\n");
    printf($e->getMessage() . "\n");
    return;
}

print(__FUNCTION__ . ": OK" . "\n");        

Para mais informações, consulte GetObject.