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 |
|
Copia objetos dentro de um bucket ou entre buckets na mesma região. |
|
|
||
|
|
Necessária também quando se especifica a versão do objeto de origem via versionId. |
|
|
|
Obrigatórias ao copiar tags de objetos por meio de x-oss-tagging. |
|
|
|
||
|
|
Também exigida caso você especifique as tags de uma versão específica do objeto de origem usando versionId. |
|
|
|
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. |
|
|
|
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: |
|
--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. |
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
srcObjectdesrcBucketparaexamplebucketcom o nomeexampleobject.ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /srcBucket/srcObject -
Copie
srcObjectdeexamplebucketcomoexampleobject.ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject -
Copie
srcObjectdeexamplebucketcomoexampleobjecte exiba o resultado no formato JSON.ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --output-format json -
Copie
srcObjectdeexamplebucketcomoexampleobjecte exiba o resultado no formato YAML.ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --output-format yaml -
Copie
srcObjectdeexamplebucketcomoexampleobjecte impeça queexampleobjectsobrescreva um objeto existente com o mesmo nome.ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --forbid-overwrite true -
Copie
srcObjectdeexamplebucketcomoexampleobjectsomente se o valor ETag desrcObjectfor igual a 123.ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --copy-source-if-match 123 -
Copie
srcObjectdeexamplebucketcomoexampleobjectcaso a data de modificação desrcObjectseja 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
srcObjectdeexamplebucketcomoexampleobject, substituindo os metadados desrcObjectpelos 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
srcObjectdeexamplebucketcomoexampleobject, adicionando as tags especificadas na solicitação aexampleobject.ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --tagging-directive Replace --tagging "TagA=A&TagB=B" -
Copie
srcObjectdeexamplebucketcomoexampleobject, 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