Todos los productos
Search
Centro de documentos

Object Storage Service:Configurar metadatos de un objeto al cargarlo (OSS SDK for PHP 1.0)

Última actualización: Sep 22, 2026

Los objetos almacenados en Object Storage Service (OSS) se componen de claves, datos y metadatos. Los metadatos describen el objeto e incluyen encabezados HTTP estándar y metadatos de usuario. Al configurar los encabezados HTTP estándar, puede crear políticas personalizadas para las solicitudes HTTP, como políticas de caché o de descarga forzada de objetos. También es posible configurar metadatos de usuario para identificar la finalidad o los atributos del objeto.

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 dentro de la misma región, use un endpoint interno. Para 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.

  • Para configurar los metadatos de un objeto, necesita el permiso oss:PutObject. Para más información, consulte Grant a custom policy.

Código de ejemplo

A continuación se muestra un ejemplo de código para configurar los metadatos de un objeto al momento de cargarlo.

Aviso

Antes de configurar los metadatos del objeto que desea cargar, compruebe si el directorio ya contiene un objeto con el mismo nombre. Esto evita sobrescrituras accidentales. Para más información, consulte When I upload an object to a bucket and set metadata for the object simultaneously, how do I prevent an existing object with the same name in the bucket from being overwritten?.

<?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 configured.  
$provider = new EnvironmentVariableCredentialsProvider();
// Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com. 
$endpoint = "yourEndpoint";
// Specify the name of the bucket. Example: examplebucket. 
$bucket= "examplebucket";
// Specify the full path of the object. Do not include the bucket name in the full path. Example: exampledir/exampleobject.txt. 
$object = "exampledir/exampleobject.txt";
$content = file_get_contents(__FILE__);
$options = array(
    OssClient::OSS_HEADERS => array(
        'Expires' => '2012-10-01 08:00:00',
        'Content-Disposition' => 'attachment; filename="xxxxxx"',
        'x-oss-meta-self-define-title' => 'user define meta info',
    ));
try{
    $config = array(
        "provider" => $provider,
        "endpoint" => $endpoint,
        "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
        "region"=> "cn-hangzhou"
    );
    $ossClient = new OssClient($config);
    // Configure object metadata when you upload the object. 
    $ossClient->putObject($bucket, $object, $content, $options);
} catch(OssException $e) {
    printf(__FUNCTION__ . ": FAILED\n");
    printf($e->getMessage() . "\n");
    return;
}
print(__FUNCTION__ . ": OK" . "\n");
            

Referencias

  • Para consultar el código de ejemplo completo que configura los metadatos de un objeto durante la carga, visite GitHub.

  • Para más información sobre la operación de API que permite configurar los metadatos de un objeto al cargarlo, consulte PutObject.

Preguntas frecuentes

¿Cómo evito sobrescribir un objeto existente con el mismo nombre cuando cargo un objeto a un bucket y configuro sus metadatos al mismo tiempo?

Use uno de los siguientes métodos para evitar que se sobrescriban los objetos con el mismo nombre dentro del bucket:

  • Habilite el control de versiones

    Si habilita el control de versiones en el bucket, OSS conserva el objeto existente con el mismo nombre como versión anterior y almacena el objeto cargado como versión actual. Puede restaurar versiones anteriores de un objeto en cualquier momento. Para más información, consulte Enable versioning.

  • Incluya el encabezado x-oss-forbid-overwrite en la solicitud de carga

    Incluya el encabezado x-oss-forbid-overwrite en la solicitud de carga y establézcalo en true. Si intenta cargar un objeto con el mismo nombre que otro ya existente en el directorio de destino, la carga presentará errores y OSS devolverá el error FileAlreadyExists. Para más información, consulte PutObject.