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 |
|
Copia objetos dentro de un bucket o entre buckets de la misma región. |
|
|
||
|
|
Este permiso también es obligatorio si especifica la versión del objeto de origen mediante versionId. |
|
|
|
Estos permisos son obligatorios si copia las etiquetas del objeto mediante x-oss-tagging. |
|
|
|
||
|
|
Este permiso también es obligatorio si especifica las etiquetas de una versión concreta del objeto de origen mediante versionId. |
|
|
|
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. |
|
|
|
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: |
|
--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. |
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
srcObjectdesrcBucketaexamplebucketcon el nombreexampleobject.ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /srcBucket/srcObject -
Copie
srcObjectdeexamplebucketcon el nombreexampleobject.ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject -
Copie
srcObjectdeexamplebucketcon el nombreexampleobjecty muestre el resultado en formato JSON.ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --output-format json -
Copie
srcObjectdeexamplebucketcon el nombreexampleobjecty muestre el resultado en formato YAML.ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --output-format yaml -
Copie
srcObjectdeexamplebucketcon el nombreexampleobjecte impida queexampleobjectsobrescriba un objeto existente con el mismo nombre.ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --forbid-overwrite true -
Copie
srcObjectdeexamplebucketcon el nombreexampleobjectsi el valor ETag desrcObjectes igual a 123.ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --copy-source-if-match 123 -
Copie
srcObjectdeexamplebucketcon el nombreexampleobjectsi la hora de modificación desrcObjectes 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
srcObjectdeexamplebucketcon el nombreexampleobject. Se utilizan los metadatos especificados en la solicitud en lugar de los metadatos desrcObject.ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --metadata-directive REPLACE --metadata user=aliyun --metadata email=ali***@aliyuncs.com -
Copie
srcObjectdeexamplebucketcon el nombreexampleobject. Las etiquetas especificadas en la solicitud se agregan aexampleobject.ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --tagging-directive Replace --tagging "TagA=A&TagB=B" -
Copie
srcObjectdeexamplebucketcon el nombreexampleobjecty 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