Todos os produtos
Search
Central de documentação

Object Storage Service:copy-object

Última atualização: Jul 03, 2026

O comando copy-object copia objetos armazenados no mesmo bucket ou em buckets diferentes dentro da mesma região.

Observações

  • Para restaurar uma versão anterior de um objeto como versão atual, copie a versão anterior para o bucket onde o objeto está armazenado. O OSS armazena essa versão anterior como a versão atual do objeto.

  • Não há limite de tamanho para cópia de objetos dentro do mesmo bucket. Para cópias entre buckets na mesma região, recomenda-se usar esta operação apenas para objetos menores que 1 GB. Para objetos maiores que 1 GB, utilize o comando upload-part-copy.

  • Se o objeto de origem for um link simbólico, apenas o link simbólico será copiado. O objeto alvo do link não é copiado.

Permissões

Por padrão, uma conta Alibaba Cloud possui permissões totais. Usuários RAM ou funções RAM vinculados a uma conta Alibaba Cloud não possuem permissões por padrão. A conta Alibaba Cloud ou o administrador da conta deve conceder as permissões de operação por meio de políticas do RAM ou Bucket Policy.

API

Ação

Descrição

CopyObject

oss:GetObject

Copia objetos dentro de um bucket ou entre buckets na mesma região.

oss:PutObject

oss:GetObjectVersion

Necessária também quando se especifica a versão do objeto de origem via versionId.

oss:GetObjectTagging

Obrigatórias ao copiar tags de objetos por meio de x-oss-tagging.

oss:PutObjectTagging

oss:GetObjectVersionTagging

Também exigida caso você especifique as tags de uma versão específica do objeto de origem usando versionId.

kms:GenerateDataKey

Ambas as permissões são necessárias se os metadados do objeto de destino contiverem X-Oss-Server-Side-Encryption: KMS durante a cópia.

kms:Decrypt

Sintaxe

ossutil api copy-object --bucket value --key value --copy-source value [flags]

Parâmetro

Tipo

Descrição

--bucket

string

Nome do bucket.

--key

string

Caminho completo do objeto.

--forbid-overwrite

string

Define se a operação CopyObject pode sobrescrever objetos existentes com o mesmo nome dos objetos a serem copiados.

--copy-source

string

Endereço de acesso ao objeto de origem. Formato: bucket/UrIEncode(key). É necessário ter permissão de leitura no objeto de origem. O nome do objeto de origem deve estar codificado em URL.

--copy-source-if-match

string

Copia o objeto se o valor ETag do objeto de origem for igual ao valor ETag especificado na solicitação. Caso contrário, o OSS retorna o código de status HTTP 412 (PreconditionFailed).

--copy-source-if-modified-since

string

Condição para transferência do objeto. Se o horário especificado for anterior à hora real de modificação do objeto, o sistema transfere o objeto e retorna 200 OK. Caso contrário, retorna 304 Not Modified.

--copy-source-if-none-match

string

Condição para transferência do objeto. Se o valor ETag especificado não corresponder ao valor ETag do objeto de origem, o OSS transfere o objeto e retorna 200 OK. Caso contrário, retorna 304 Not Modified.

--copy-source-if-unmodified-since

string

Condição para transferência do objeto. Se o horário especificado for igual ou posterior à hora real de modificação, o OSS transfere o objeto e retorna 200 OK. Caso contrário, retorna 412 Precondition Failed.

--metadata

stringArray

Metadados do usuário no formato chave=valor. Para definir metadados personalizados, configure parâmetros com o prefixo x-oss-meta-*.

--metadata-directive

string

Método usado para configurar os metadados do objeto de destino.

--object-acl

string

Especifica a lista de controle de acesso (ACL) do objeto.

--server-side-encryption

string

Método de criptografia de objetos no servidor OSS.

--server-side-encryption-key-id

string

ID da chave mestra do cliente (CMK) gerenciada pelo Key Management Service (KMS).

--storage-class

string

Classe de armazenamento do objeto.

--tagging

string

Tags do objeto.

--tagging-directive

string

Método utilizado para adicionar tags ao objeto de destino.

Nota
  • O comando copy-object corresponde à operação da API CopyObject. Para mais detalhes sobre os parâmetros envolvidos, consulte CopyObject.

  • Para obter mais informações sobre as opções globais de linha de comando suportadas, veja Opções de linha de comando.

Exemplos

  • Copie srcObject de srcBucket para examplebucket com o nome exampleobject.

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /srcBucket/srcObject
  • Copie srcObject de examplebucket como exampleobject.

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject
  • Copie srcObject de examplebucket como exampleobject e exiba o resultado no formato JSON.

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --output-format json
  • Copie srcObject de examplebucket como exampleobject e exiba o resultado no formato YAML.

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --output-format yaml
  • Copie srcObject de examplebucket como exampleobject e impeça que exampleobject sobrescreva um objeto existente com o mesmo nome.

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --forbid-overwrite true
  • Copie srcObject de examplebucket como exampleobject somente se o valor ETag de srcObject for igual a 123.

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --copy-source-if-match 123
  • Copie srcObject de examplebucket como exampleobject caso a data de modificação de srcObject seja anterior a Mon, 11 May 2020 08:16:23 GMT.

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --copy-source-if-unmodified-since "Mon, 11 May 2020 08:16:23 GMT"
  • Copie srcObject de examplebucket como exampleobject, substituindo os metadados de srcObject pelos metadados especificados na solicitação.

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --metadata-directive REPLACE --metadata user=aliyun --metadata email=ali***@aliyuncs.com
  • Copie srcObject de examplebucket como exampleobject, adicionando as tags especificadas na solicitação a exampleobject.

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --tagging-directive Replace --tagging "TagA=A&TagB=B"
  • Copie srcObject de examplebucket como exampleobject, definindo a ACL e a classe de armazenamento do objeto.

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --object-acl private --storage-class IA