Todos los productos
Search
Centro de documentos

Object Storage Service:Descargar un objeto a un archivo local (SDK de PHP V1)

Última actualización: Sep 22, 2026

Este tema describe cómo descargar un objeto de un bucket a un archivo local.

Notas de uso

  • En este tema se utiliza el endpoint público de la región China (Hangzhou). Para acceder a OSS desde otros servicios de Alibaba Cloud en la misma región, utilice un endpoint interno. Para obtener más información sobre las regiones y los endpoints compatibles, consulte Regions and endpoints.

  • Este tema muestra cómo crear una instancia de OSSClient con un endpoint de OSS. Para conocer configuraciones alternativas, como usar un dominio personalizado o autenticarse con credenciales de Security Token Service (STS), consulte Create an OssClient.

Permisos

De forma predeterminada, una cuenta de Alibaba Cloud tiene todos los permisos. Los usuarios o roles de RAM asociados a una cuenta de Alibaba Cloud no cuentan con ningún permiso de manera predeterminada. La cuenta de Alibaba Cloud o el administrador de la cuenta debe otorgar los permisos de operación mediante RAM policies o Bucket Policy.

API

Action

Descripción

GetObject

oss:GetObject

Descarga un objeto.

oss:GetObjectVersion

Este permiso es obligatorio cuando se descarga un objeto y se especifica su versión mediante versionId.

kms:Decrypt

Este permiso es obligatorio cuando se descarga un objeto cuyos metadatos incluyen X-Oss-Server-Side-Encryption: KMS.

Código de ejemplo

A continuación se muestra el código que descarga el objeto testfolder/exampleobject.txt del bucket examplebucket. El objeto se guarda como examplefile.txt en el directorio 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");
        

Preguntas frecuentes

¿Cómo cambio el nombre de un archivo al descargarlo?

Utilice el parámetro $localfile del código de ejemplo para cambiar el nombre del archivo descargado. Por ejemplo, para descargar exampleobject.txt de un bucket y guardarlo como examplefile.txt en una ruta local específica, establezca el parámetro en $localfile = "D:\\localpath\\examplefile.txt";.

Referencias

  • Para consultar el código de ejemplo completo que muestra cómo descargar un objeto a un archivo local, revise el ejemplo en GitHub.

  • Para obtener más información sobre la operación de API que permite descargar un objeto a un archivo local, consulte GetObject.