

# CopyObject (API de SOAP)
<a name="SOAPCopyObject"></a>

**nota**  
 Las API de SOAP para Amazon S3 no están disponibles para nuevos clientes y se acercan al fin de la vida útil (EOL) el 31 de agosto de 2025. Le recomendamos que utilice la API de REST o los SDK de AWS. 

## Descripción
<a name="SOAPCopyObject_Description"></a>

La operación `CopyObject` crea una copia de un objeto al especificar la clave y el bucket de un objeto de origen y la clave y el bucket de un destino. 

Al copiar un objeto, puede conservar todos los metadatos (opción predeterminada) o especificar metadatos nuevos. Sin embargo, la ACL no se conserva y se establece en `private` para el usuario que realiza la solicitud. Para invalidar la configuración de ACL predeterminada, especifique una nueva ACL al generar una solicitud de copia. Para obtener más información, consulte [Uso de ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3_ACLs_UsingACLs.html).

Todas las solicitudes de copia se deben autenticar. Además, debe tener acceso de *lectura* al objeto de origen y de *escritura* al bucket de destino. Para obtener más información, consulte [Uso de la autenticación de acceso](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). 

Para copiar un objeto solo en determinadas condiciones, por ejemplo, si la ETag coincide o si el objeto se modificó antes o después de una fecha específica, use los parámetros de solicitud `CopySourceIfUnmodifiedSince`, `CopyIfUnmodifiedSince`, `CopySourceIfMatch` o `CopySourceIfNoneMatch`. 

**nota**  
 Puede que necesite configurar el tiempo de espera del socket de la pila de SOAP para copiar objetos grandes. 

## Sintaxis de la solicitud
<a name="SOAPCopyObject_RequestSyntax"></a>

```
 1. <CopyObject xmlns="http://bucket_name.s3.amazonaws.com/2006-03-01">
 2.   <SourceBucket>source_bucket</SourceBucket>
 3.   <SourceObject>source_object</SourceObject>
 4.   <DestinationBucket>destination_bucket</DestinationBucket>
 5.   <DestinationObject>destination_object</DestinationObject>
 6.   <MetadataDirective>{REPLACE | COPY}</MetadataDirective>
 7.   <Metadata>
 8.     <Name>metadata_name</Name>
 9.     <Value>metadata_value</Value>
10.   </Metadata>
11.   ...
12.   <AccessControlList>
13.     <Grant>
14.       <Grantee xsi:type="user_type">
15.         <ID>user_id</ID>
16.         <DisplayName>display_name</DisplayName>
17.       </Grantee>
18.       <Permission>permission</Permission>
19.     </Grant>
20.     ...
21.   </AccessControlList>
22.   <CopySourceIfMatch>etag</CopySourceIfMatch>
23.   <CopySourceIfNoneMatch>etag</CopySourceIfNoneMatch>
24.   <CopySourceIfModifiedSince>date_time</CopySourceIfModifiedSince>
25.   <CopySourceIfUnmodifiedSince>date_time</CopySourceIfUnmodifiedSince>
26.   <AWSAccessKeyId>AWSAccessKeyId</AWSAccessKeyId>
27.   <Timestamp>TimeStamp</Timestamp>
28.   <Signature>Signature</Signature>
29. </CopyObject>
```

## Parámetros de la solicitud
<a name="SOAPCopyObject_RequestParameters"></a>


|  Nombre  |  Descripción  |  Obligatorio  | 
| --- | --- | --- | 
|  SourceBucket  | El nombre del bucket de origen.<br />Tipo: cadena<br />Valor predeterminado: None<br />Restricciones: un bucket de origen válido. |  Sí  | 
|  SourceKey  | El nombre de la clave del objeto de origen.<br />Tipo: cadena<br />Valor predeterminado: None<br />Restricciones: la clave de un objeto de origen válido al que tiene acceso de READ. |  Sí  | 
|  DestinationBucket  | El nombre del bucket de de destino.<br />Tipo: cadena<br />Valor predeterminado: None<br />Restricciones: debe tener acceso de WRITE al bucket de destino. |  Sí  | 
|  DestinationKey  |  La clave del objeto de destino.<br />Tipo: cadena<br />Valor predeterminado: None<br />Restricciones: debe tener acceso de WRITE al bucket de destino. |  Sí  | 
|  MetadataDirective  |  Especifica si los metadatos se copian del objeto de origen o se sustituyen por los metadatos proporcionados en la solicitud.<br />Tipo: cadena<br />Predeterminado: COPY<br />Valores válidos: COPY \| REPLACE<br />Restricciones: los valores distintos de `COPY` o `REPLACE` producirán un error inmediato. No se puede copiar un objeto a sí mismo a menos que se especifique el encabezado MetadataDirective y se establezca su valor en `REPLACE`. |  No  | 
|  Metadata  |  Especifica los pares nombre-valor de los metadatos que se van a establecer para el objeto. Si MetadataDirective se establece en `COPY`, se ignoran todos los metadatos.<br />Tipo: cadena<br />Valor predeterminado: None<br />Restricciones: ninguna. |  No  | 
|  AccessControlList  | Concede acceso a los usuarios mediante direcciones de correo electrónico o un ID de usuario canónico.<br />Tipo: cadena<br />Valor predeterminado: None<br />Restricciones: ninguna |  No  | 
|  CopySourceIfMatch  | Copia el objeto si su etiqueta de entidad (ETag) coincide con la etiqueta especificada; de lo contrario, devuelve un PreconditionFailed.<br />Tipo: cadena<br />Valor predeterminado: None<br />Restricciones: ninguna. Si la ETag no coincide, el objeto no se copia. |  No  | 
|  CopySourceIfNoneMatch  | Copia el objeto si su etiqueta de entidad (ETag) es diferente de la ETag especificada; de lo contrario, devuelve un error.<br />Tipo: cadena<br />Valor predeterminado: None<br />Restricciones: ninguna.  |  No  | 
|  CopySourceIfUnmodifiedSince  |  Copia el objeto si no se ha modificado desde el momento especificado; de lo contrario, devuelve PreconditionFailed.<br />Tipo: dateTime<br />Valor predeterminado: none |  No  | 
|  CopySourceIfModifiedSince  | Copia el objeto si se ha modificado desde el momento especificado; de lo contrario devuelve un error.<br />Tipo: dateTime<br />Valor predeterminado: none |  No  | 

## Sintaxis de la respuesta
<a name="SOAPCopyObject_ResponseSyntax"></a>

```
1. <CopyObjectResponse xmlns="http://bucket_name.s3.amazonaws.com/2006-03-01">
2.   <CopyObjectResponse>
3.     <ETag>"etag"</ETag>
4.     <LastModified>timestamp</LastModified>
5.   </CopyObjectResponse>
6. </CopyObjectResponse>
```

## Elementos de respuesta
<a name="SOAPCopyObject_CommonResponseElements"></a>

A continuación, se muestra una lista de elementos de respuesta.

**nota**  
 La API de SOAP no devuelve espacios en blanco adicionales. Los espacios en blanco adicionales solo los devuelve la API de REST. 


|  Nombre  |  Descripción  | 
| --- | --- | 
|  Etag  | Devuelve la etag del nuevo objeto. La ETag solo refleja los cambios en el contenido de un objeto, no en los metadatos.<br />Tipo: cadena<br />Antecesor: CopyObjectResult | 
|  LastModified  | Devuelve la fecha en la que se modificó el objeto por última vez.<br />Tipo: cadena<br />Antecesor: CopyObjectResult | 

Para obtener información sobre los elementos de respuesta generales, consulte [Uso de encabezados de respuesta a errores de REST](https://docs.aws.amazon.com/AmazonS3/latest/userguide/HandlingErrors.html#UsingRESTErrorResponseHeaders).

## Errores especiales
<a name="SOAPCopyObject_SpecialErrors"></a>

No hay errores especiales para esta operación. Para obtener información acerca de errores de Amazon S3 generales, consulte [Lista de códigos de error](ErrorResponses.md#ErrorCodeList).

## Ejemplos
<a name="SOAPCopyObject_Examples"></a>

En este ejemplo se copia el objeto `flotsam` desde el bucket `pacific` al objeto `jetsam` del bucket `atlantic`, conservando sus metadatos.

### Solicitud de muestra
<a name="SOAPCopyObject_Examples_Request1"></a>

```
1. <CopyObject xmlns="http://doc.s3.amazonaws.com/2006-03-01">
2.   <SourceBucket>pacific</SourceBucket>
3.   <SourceObject>flotsam</SourceObject>
4.   <DestinationBucket>atlantic</DestinationBucket>
5.   <DestinationObject>jetsam</DestinationObject>
6.   <AWSAccessKeyId>AKIAIOSFODNN7EXAMPLE</AWSAccessKeyId>
7.   <Timestamp>2008-02-18T13:54:10.183Z</Timestamp>
8.   <Signature>Iuyz3d3P0aTou39dzbq7RrtSFmw=</Signature>
9. </CopyObject>
```

### Respuesta de ejemplo
<a name="SOAPCopyObject_Examples_Response1"></a>

```
1. <CopyObjectResponse xmlns="http://doc.s3.amazonaws.com/2006-03-01">
2.   <CopyObjectResponse>
3.     <ETag>"828ef3fdfa96f00ad9f27c383fc9ac7f"</ETag>
4.     <LastModified>2008-02-18T13:54:10.183Z</LastModified>
5.   </CopyObjectResponse>
6. </CopyObjectResponse>
```

En este ejemplo, se copia el objeto “tweedledee” del bucket de wonderland al objeto “tweedledum” del bucket de wonderland, lo que sustituye sus metadatos.

### Solicitud de muestra
<a name="SOAPCopyObject_Examples_Request2"></a>

```
 1. <CopyObject xmlns="http://doc.s3.amazonaws.com/2006-03-01">
 2.   <SourceBucket>wonderland</SourceBucket>
 3.   <SourceObject>tweedledee</SourceObject>
 4.   <DestinationBucket>wonderland</DestinationBucket>
 5.   <DestinationObject>tweedledum</DestinationObject>
 6.   <MetadataDirective >REPLACE</MetadataDirective >
 7.   <Metadata>
 8.     <Name>Content-Type</Name>
 9.     <Value>text/plain</Value>
10.   </Metadata>
11.   <Metadata>
12.     <Name>relationship</Name>
13.     <Value>twins</Value>
14.   </Metadata>
15.   <AWSAccessKeyId>AKIAIOSFODNN7EXAMPLE</AWSAccessKeyId>
16.   <Timestamp>2008-02-18T13:54:10.183Z</Timestamp>
17.   <Signature>Iuyz3d3P0aTou39dzbq7RrtSFmw=</Signature>
18. </CopyObject>
```

### Respuesta de ejemplo
<a name="SOAPCopyObject_Examples_Response2"></a>

```
1. <CopyObjectResponse xmlns="http://doc.s3.amazonaws.com/2006-03-01">
2.   <CopyObjectResponse>
3.     <ETag>"828ef3fdfa96f00ad9f27c383fc9ac7f"</ETag>
4.     <LastModified>2008-02-18T13:54:10.183Z</LastModified>
5.   </CopyObjectResponse>
6. </CopyObjectResponse>
```

## Activos relacionados
<a name="SOAPCopyObject_RelatedResources"></a>
+  [PutObject (API de SOAP)](SOAPPutObject.md) 
+  [PutObjectInline (API de SOAP)](SOAPPutObjectInline.md) 