Todos los productos
Search
Centro de documentos

Object Storage Service:copy-object

Última actualización: Sep 24, 2026

El comando copy-object se utiliza para copiar objetos almacenados en el mismo bucket o en distintos buckets dentro de la misma región.

Notas

  • Para recuperar una versión anterior de un objeto como versión actual, copie dicha versión anterior en el bucket donde se almacena el objeto. OSS guarda automáticamente la versión anterior como la versión actual.

  • Si copia objetos dentro del mismo bucket, no existe límite en el tamaño del objeto que se copia. Si los copia entre buckets de la misma región, se recomienda llamar a esta operación para objetos menores a 1 GB. Para copiar objetos mayores a 1 GB, ejecute el comando upload-part-copy.

  • Si el objeto de origen es un enlace simbólico, solo se copia dicho enlace. El objeto al que apunta el enlace simbólico no se copia.

Permisos

De forma predeterminada, una cuenta de Alibaba Cloud tiene todos los permisos. Los usuarios o roles de RAM asociados a una cuenta de Alibaba Cloud no cuentan con ningún permiso de manera predeterminada. La cuenta de Alibaba Cloud o su administrador deben otorgar los permisos de operación mediante RAM policies o Bucket Policy.

API

Action

Descripción

CopyObject

oss:GetObject

Copia objetos dentro de un bucket o entre buckets de la misma región.

oss:PutObject

oss:GetObjectVersion

Este permiso también es obligatorio si especifica la versión del objeto de origen mediante versionId.

oss:GetObjectTagging

Estos permisos son obligatorios si copia las etiquetas del objeto mediante x-oss-tagging.

oss:PutObjectTagging

oss:GetObjectVersionTagging

Este permiso también es obligatorio si especifica las etiquetas de una versión concreta del objeto de origen mediante versionId.

kms:GenerateDataKey

Estos dos permisos son obligatorios cuando los metadatos del objeto de destino contienen X-Oss-Server-Side-Encryption: KMS durante la copia de un objeto.

kms:Decrypt

Sintaxis

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

Parámetro

Tipo

Descripción

--bucket

string

Nombre del bucket.

--key

string

Ruta completa del objeto.

--forbid-overwrite

string

Indica si la operación CopyObject puede sobrescribir objetos existentes que tengan el mismo nombre que los objetos que desea copiar.

--copy-source

string

Dirección utilizada para acceder al objeto de origen. Formato: bucket/UrIEncode(key). Debe contar con los permisos para leer el objeto de origen. El nombre de dicho objeto debe codificarse en URL.

--copy-source-if-match

string

Si el valor ETag del objeto de origen coincide con el valor ETag especificado en la solicitud, OSS copia el objeto. De lo contrario, devuelve el código de estado HTTP 412 (PreconditionFailed).

--copy-source-if-modified-since

string

Condición de transferencia del objeto. Si la hora especificada es anterior a la hora real de modificación del objeto, el sistema transfiere el objeto y devuelve 200 OK. En caso contrario, devuelve 304 Not Modified.

--copy-source-if-none-match

string

Condición de transferencia del objeto. Si el valor ETag especificado no coincide con el valor ETag del objeto de origen, OSS transfiere el objeto y devuelve 200 OK. De lo contrario, devuelve 304 Not Modified.

--copy-source-if-unmodified-since

string

Condición de transferencia del objeto. Si la hora especificada es igual o posterior a la hora real de modificación, OSS transfiere el objeto y devuelve 200 OK. En caso contrario, devuelve 412 Precondition Failed.

--metadata

stringArray

Metadatos de usuario del objeto con el formato key=value. Para especificar metadatos personalizados, configure parámetros con el prefijo x-oss-meta-*.

--metadata-directive

string

Método utilizado para configurar los metadatos del objeto de destino.

--object-acl

string

Especifica la lista de control de acceso (ACL) del objeto.

--server-side-encryption

string

Método utilizado para cifrar objetos en el servidor de OSS.

--server-side-encryption-key-id

string

ID de la clave maestra del cliente (CMK) administrada por Key Management Service (KMS).

--storage-class

string

Clase de almacenamiento del objeto.

--tagging

string

Etiquetas del objeto.

--tagging-directive

string

Método utilizado para agregar etiquetas al objeto de destino.

Nota
  • El comando copy-object corresponde a la operación de API CopyObject. Para obtener más información sobre sus parámetros, consulte CopyObject.

  • Para obtener más información sobre las opciones globales de línea de comandos compatibles, consulte Command-line options.

Ejemplos

  • Copie srcObject de srcBucket a examplebucket con el nombre exampleobject.

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

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject
  • Copie srcObject de examplebucket con el nombre exampleobject y muestre el resultado en formato JSON.

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --output-format json
  • Copie srcObject de examplebucket con el nombre exampleobject y muestre el resultado en formato YAML.

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --output-format yaml
  • Copie srcObject de examplebucket con el nombre exampleobject e impida que exampleobject sobrescriba un objeto existente con el mismo nombre.

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --forbid-overwrite true
  • Copie srcObject de examplebucket con el nombre exampleobject si el valor ETag de srcObject es igual a 123.

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --copy-source-if-match 123
  • Copie srcObject de examplebucket con el nombre exampleobject si la hora de modificación de srcObject es 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 con el nombre exampleobject. Se utilizan los metadatos especificados en la solicitud en lugar de los metadatos de srcObject.

    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 con el nombre exampleobject. Las etiquetas especificadas en la solicitud se agregan 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 con el nombre exampleobject y especifique la ACL y la clase de almacenamiento del objeto.

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