Todos os produtos
Search
Central de documentação

Object Storage Service:Configure object metadata when you upload an object (OSS SDK for PHP 1.0)

Última atualização: Jul 03, 2026

Os objetos armazenados no Object Storage Service (OSS) consistem em chaves, dados e metadados. Os metadados descrevem o objeto e incluem cabeçalhos HTTP padrão e metadados de usuário. Configure cabeçalhos HTTP padrão para criar políticas personalizadas de solicitação HTTP, como políticas de cache e de download forçado. Configure também metadados de usuário para identificar finalidades ou atributos do objeto.

Observações de uso

  • Este tópico usa 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 regiões e endpoints compatíveis, consulte Regiões e endpoints.

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

  • Para configure metadados de objeto, é necessária a permissão oss:PutObject. Para mais informações, consulte Conceder uma política personalizada.

Código de exemplo

O código de exemplo a seguir mostra como configure metadados durante o upload de um objeto.

Aviso

Antes de configure os metadados do objeto a ser enviado, verifique se o diretório já contém um objeto com o mesmo nome para evitar substituições acidentais. Para mais informações, consulte Ao fazer upload de um objeto para um bucket e defina metadados simultaneamente, como evito que um objeto existente com o mesmo nome seja substituído?

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

Referências

  • Para obter o código de exemplo completo sobre configuração de metadados durante o upload, visite o GitHub.

  • Para mais informações sobre a operação de API usada para configure metadados no upload, consulte PutObject.

Perguntas frequentes

Ao fazer upload de um objeto para um bucket e defina metadados simultaneamente, como evito que um objeto existente com o mesmo nome seja substituído?

Use um dos métodos a seguir para impedir a substituição de objetos com o mesmo nome no bucket:

  • Ative o versionamento

    Ao ative o versionamento no bucket, o OSS mantém o objeto existente com o mesmo nome como versão anterior e armazena o novo objeto como versão atual. Você pode restaurar versões anteriores do objeto a qualquer momento. Para mais informações, consulte Ativar versionamento.

  • Incluir o cabeçalho x-oss-forbid-overwrite na solicitação de upload

    Adicione o cabeçalho x-oss-forbid-overwrite à solicitação de upload e defina seu valor como true. Se você enviar um objeto com o mesmo nome de outro já existente no diretório de destino, o upload falhará e o OSS retornará o erro FileAlreadyExists. Para mais informações, consulte PutObject.