Todos os produtos
Search
Central de documentação

Object Storage Service:set-meta (Gerencie metadados de objetos)

Última atualização: Oct 10, 2026

Os metadados de objetos descrevem as propriedades de um objeto e são divididos em dois tipos: headers HTTP padrão e metadados definidos pelo usuário. Utilize os headers HTTP para personalizar políticas de requisições HTTP e os metadados definidos pelo usuário para identificar a finalidade ou os atributos de um objeto. Com o comando set-meta, é possível definir, modificar ou excluir metadados de objetos já enviados.

Observações de uso

  • Para definir metadados de um único objeto, você precisa das permissões oss:GetObject, oss:PutObject, oss:GetObjectVersion e oss:GetObjectAcl. Já para definir metadados de vários objetos em uma operação em lote, são necessárias as permissões oss:GetObject, oss:PutObject, oss:GetObjectVersion e oss:ListObjects. Para mais informações, consulte Attach a custom access policy to a RAM user.

  • No ossutil 1.6.16 e versões posteriores, use ossutil como nome do binário na linha de comando, sem necessidade de alteração conforme o sistema operacional. Caso utilize uma versão anterior à 1.6.16, substitua o nome do binário de acordo com seu sistema operacional. Para mais informações, consulte ossutil command reference.

  • Após definir ou atualizar os metadados de um objeto com o comando set-meta, visualize-os por meio do comando stat. Para mais informações, consulte stat.

Sintaxe do comando

ossutil set-meta oss://bucketname[/prefix] 
[header:value#header:value...]
[--update]
[--delete] 
[-r, --recursive] 
[-f, --force]
[--object-file <value>]
[--snapshot-path <value>]
[--disable-ignore-error]
[--version-id <value>]
[--include <value>]
[--exclude <value>]

A tabela a seguir descreve os parâmetros e opções disponíveis:

Parâmetro ou opção

Descrição

bucketname

Nome do bucket.

prefix

Recursos dentro de um bucket, incluindo pastas e arquivos.

header:value#header:value...

Metadados especificados como pares chave-valor. As chaves dos headers não diferenciam maiúsculas de minúsculas, mas os valores fazem essa distinção. Para definir múltiplos headers de metadados, separe-os pelo caractere cerquilha (#). Exemplo: Cache-Control:no-cache#Expires:2022-10-12T00:00:00.000Z.

Os seguintes headers estão disponíveis:

Headers:
      Expires(time.RFC3339:2006-01-02T15:04:05Z07:00)
      X-Oss-Object-Acl
      Origin
      X-Oss-Storage-Class
      Content-Encoding
      Cache-Control
      Content-Disposition
      Accept-Encoding
      X-Oss-Server-Side-Encryption
      Content-Type
      and headers that start with X-Oss-Meta-

Para mais detalhes sobre o uso de headers, consulte Gerencie metadados de objetos.

--update

Atualize os metadados do objeto. Esta opção pode ser abreviada como -u e não pode ser combinada com a opção --delete.

--delete

Exclua os metadados do objeto. Não é possível utilizar esta opção juntamente com --update.

-r, --recursive

Defina metadados para todos os objetos que correspondem ao prefixo especificado. Sem essa opção, o ossutil aplica os metadados apenas ao objeto indicado.

-f, --force

Força a execução da operação sem solicitar confirmação.

--object-file

Utilize esta opção para definir, atualizar ou excluir metadados de múltiplos objetos em uma operação em lote. Siga o procedimento abaixo:

  1. Especifique um arquivo local nos formatos .txt ou XML contendo a lista dos objetos cujos metadados serão definidos, atualizados ou excluídos. Separe os nomes dos objetos por quebras de linha.

  2. O ossutil lê os nomes dos objetos no arquivo local e executa a operação de metadados especificada nesses itens.

Nota

Caso ocorra um erro em algum objeto, o ossutil registra a mensagem de erro no arquivo de relatório e prossegue com a operação nos demais objetos. Informações sobre objetos processados com sucesso não constam no relatório.

--snapshot-path

Ao especificar esta opção, um snapshot é gerado exclusivamente para os objetos da operação atual. Se já existir um snapshot para determinado objeto, a operação será ignorada para esse item.

Nota

Esta opção deve ser usada em conjunto com -r, --recursive ou --object-file.

--disable-ignore-error

Não ignora erros durante operações em lote.

--version-id

ID da versão do objeto. Esta opção aplica-se somente a objetos em buckets com versionamento ativado ou suspenso.

--include

Inclui todos os objetos que atendem à condição especificada.

Para mais informações, consulte The --include and --exclude options.

--exclude

Nenhum objeto atende às condições especificadas.

Para mais informações, consulte The --include and --exclude options.

Defina ou atualize metadados

Nos exemplos a seguir que não incluem a opção --update, caso você não especifique a opção header:value#header:value..., apenas os metadados definidos pelo usuário iniciados com X-Oss-Meta- são mantidos, preservando seus valores originais. Para headers HTTP, o ossutil entra em modo interativo e solicita que você confirme se deseja mantê-los.

  • Exemplo 1: Defina ou atualize metadados de um único objeto

    • Defina a lista de controle de acesso (ACL) do arquivo exampleobject.txt no bucket examplebucket como privada.

      ossutil set-meta oss://examplebucket/exampleobject.txt X-Oss-Object-Acl:private 
    • Defina a classe de armazenamento de uma versão específica do objeto exampleobject.txt no bucket examplebucket como Standard.

      ossutil set-meta oss://examplebucket/exampleobject.txt X-Oss-Storage-Class:Standard --version-id  CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3MDRk
    • Configure a classe de armazenamento de uma versão específica do objeto exampleobject.txt no bucket examplebucket como Cold Archive.

      ossutil set-meta oss://examplebucket/exampleobject.txt X-Oss-Storage-Class:ColdArchive --version-id  CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3MDRk
      Nota

      A classe de armazenamento não é alterada durante a execução do comando set-meta. A mudança entra em vigor somente após a conclusão do comando.

      Para saber como obter as versões de um objeto, consulte ls.

    • Atualize a ACL do objeto exampleobject.txt no bucket examplebucket para public-read.

      ossutil set-meta oss://examplebucket/exampleobject.txt X-Oss-Object-Acl:public-read --update

      Ao utilizar a opção --update, somente os metadados dos headers especificados são atualizados. Os valores desses headers são substituídos, enquanto todos os outros metadados existentes no objeto permanecem inalterados. Por exemplo, o comando atualiza apenas a ACL do objeto exampleobject.txt para public-read, preservando os demais metadados.

  • Exemplo 2: Defina ou atualize metadados de múltiplos objetos na mesma pasta em uma operação em lote

    Ao definir ou modificar metadados de vários objetos em lote, se ocorrer um erro em algum deles, o ossutil registrará a mensagem de erro correspondente em um arquivo de relatório dentro da pasta ossutil_output. Objetos processados com sucesso não aparecem nesse relatório.

    • Defina metadados para objetos correspondentes a um prefixo específico

      Utilize a opção -r para alterar o comportamento de cache (Cache-Control) para no-cache e a ACL (x-oss-object-acl) para private em todos os objetos que correspondem ao prefixo src no bucket examplebucket.

      ossutil set-meta oss://examplebucket/src Cache-Control:no-cache#X-Oss-Object-Acl:private -r                             
    • Modifique metadados de objetos que atendem a condições de filtro específicas

      • Use as opções -r e -u para alterar a classe de armazenamento para Infrequent Access (IA) em todos os objetos do tipo de arquivo .jpg localizados na pasta desfolder/ do bucket examplebucket.

        ossutil set-meta oss://examplebucket/desfolder/ X-Oss-Storage-Class:IA --include "*.jpg" -u -r                                        
      • Empregue as opções -r e -u para mudar a classe de armazenamento para Archive Storage nos objetos da pasta desfolder/ do bucket examplebucket, desde que os nomes dos arquivos contenham abc e os tipos de arquivo não sejam .jpg nem .txt.

        ossutil set-meta oss://examplebucket/desfolder/ X-Oss-Storage-Class:Archive --include "*abc*" --exclude "*.jpg" --exclude "*.txt" -u -r
      Importante

      Ao usar o comando set-meta para alterar a classe de armazenamento de um objeto Cold Archive ou Deep Cold Archive maior que 100 MB, a operação pode falhar devido a timeout do servidor. Para modificar a classe de armazenamento desses objetos, utilize o comando cp.

  • Exemplo 3: Defina ou atualize metadados de múltiplos objetos na mesma pasta ou em pastas diferentes

    • Objetos em pastas diferentes

      Para definir ou atualizar metadados de vários objetos situados em pastas distintas dentro de um bucket, siga estas etapas. Considere, por exemplo, que exampleobject1.jpg está na raiz do examplebucket, exampleobject2.png encontra-se na pasta dir1/ e exampleobject3.txt reside na pasta dir2/.

      1. Escreva os nomes de múltiplos objetos em um arquivo local chamado localfile.txt para definir ou atualizar seus metadados.

        exampleobject1.jpg
        dir1/exampleobject2.png
        dir2/exampleobject3.txt
      2. Defina ou atualize os metadados dos objetos especificados.

        Utilize a opção --object-file para alterar o comportamento de cache (Cache-Control) para no-cache e a ACL (x-oss-object-acl) para private em múltiplos objetos do bucket examplebucket, habilitando também snapshots.

        ossutil set-meta oss://examplebucket Cache-Control:no-cache#X-Oss-Object-Acl:private --update --object-file localfile.txt --snapshot-path dir/
    • Objetos na mesma pasta

  • Saída de exemplo

    Se a operação for bem-sucedida, a saída exibirá o tempo decorrido. Veja um exemplo de saída abaixo:

    0.106852(s) elapsed

Exclua metadados personalizados

Importante

A opção --delete remove apenas metadados personalizados que começam com X-Oss-Meta-.

  • Exemplo 1: Exclua metadados personalizados de um único objeto

    Exclua os metadados personalizados iniciados com X-Oss-Meta- do objeto exampleobject.txt no bucket examplebucket. O valor do header deve estar vazio.

    ossutil set-meta oss://examplebucket/exampleobject.txt X-Oss-Meta-Createdby  --delete
  • Exemplo 2: Exclua metadados personalizados de múltiplos objetos em uma operação em lote

    Para excluir metadados personalizados de vários objetos em lote, siga este procedimento:

    1. Insira os nomes dos objetos cujos metadados personalizados devem ser excluídos em um arquivo local chamado localfile.txt.

      exampleobject1.jpg
      dir1/exampleobject2.png
      dir2/exampleobject3.txt
    2. Exclua os metadados personalizados dos objetos.

      Utilize a opção --object-file para excluir em lote os metadados personalizados iniciados com X-Oss-Meta- de múltiplos objetos no bucket examplebucket. O valor do header deve estar vazio.

      ossutil set-meta oss://examplebucket X-Oss-Meta-Location --delete --object-file localfile.txt --snapshot-path dir/
  • Saída de exemplo

    Quando a operação é concluída com êxito, a saída mostra o tempo decorrido. Confira um exemplo:

    0.106846(s) elapsed

Opções comuns

Para acessar um bucket em outra região, utilize -e para especificar o endpoint. Para acessar um bucket pertencente a outra conta Alibaba Cloud, use -i para o AccessKey ID e -k para o AccessKey secret.

Por exemplo, execute o comando abaixo para definir a ACL do objeto testobject.jpg como private. Esse objeto está no bucket testbucket, localizado na região China (Shanghai) e pertence a uma conta Alibaba Cloud diferente.

ossutil set-meta oss://testbucket/testobject.jpg X-Oss-Object-Acl:private  -e oss-cn-shanghai.aliyuncs.com -i yourAccessKeyID  -k yourAccessKeySecret

Common options.