Copiar un objeto en un bucket de directorio - Amazon Simple Storage Service

Copiar un objeto en un bucket de directorio

La operación de copia crea una copia de un objeto que ya esté almacenado en Amazon S3. Puede copiar objetos entre buckets de directorio y buckets de uso general. También puede copiar objetos dentro de un bucket y entre buckets del mismo tipo, por ejemplo, de un bucket de directorio a otro.

Puede crear una copia de un objeto de hasta 5 GB en una única operación atómica. Sin embargo, para copiar un objeto mayor de 5 GB, debe usar las operaciones de la API de carga multiparte. Para obtener más información, consulte Uso de las cargas multiparte con buckets de directorio.

Permisos

Para copiar objetos, debe tener los siguientes permisos:

  • Para copiar objetos de un bucket de directorio a otro bucket de directorio, debe disponer del permiso s3express:CreateSession.

  • Para copiar objetos de buckets de directorio a buckets de uso general, debe tener el permiso s3express:CreateSession y el permiso s3:PutObject para escribir la copia del objeto en el bucket de destino.

  • Para copiar objetos de buckets de uso general en buckets de directorio, debe tener el permiso s3express:CreateSession y el permiso s3:GetObject para leer el objeto de origen que se está copiando.

    Para obtener más información, consulte CopyObject en la Referencia de la API de Amazon Simple Storage Service.

Cifrado

Amazon S3 cifra automáticamente todos los objetos nuevos que se cargan a un bucket de S3. La configuración de cifrado predeterminada de un bucket de S3 siempre está activada y, como mínimo, se establece en el cifrado del servidor con claves administradas de Amazon S3 (SSE-S3).

Para los buckets de directorio, solo se admite SSE-S3. Para buckets de uso general, puede utilizar SSE-S3 (predeterminado), el cifrado del servidor con claves de AWS Key Management Service (AWS KMS) (SSE-KMS), el cifrado del servidor de doble capa con claves de AWS KMS (DSSE-KMS) o el cifrado del servidor con claves proporcionadas por el cliente (SSE-C).

Si hace una solicitud de copia que establezca los parámetros SSE-C, SSE-KMS o DSSE-KMS en un bucket de directorio como origen o destino, la respuesta devolverá un error.

Etiquetas

Los buckets de directorio no admiten etiquetas. Si copia un objeto que tiene etiquetas de un bucket de uso general a un bucket de directorio, recibirá una respuesta HTTP 501 (Not Implemented). Para obtener más información, consulte CopyObject en la Referencia de la API de Amazon Simple Storage Service.

ETags

Las etiquetas de entidad (ETag) para S3 Express One Zone son cadenas alfanuméricas aleatorias, no sumas de comprobación MD5. Para garantizar la integridad del objeto, utilice sumas de comprobación adicionales.

Sumas de comprobación adicionales

S3 Express One Zone le ofrece la opción de elegir el algoritmo de suma de comprobación que se utiliza para validar los datos durante la carga o descarga. Puede seleccionar uno de los siguientes algoritmos de comprobación de integridad de datos Secure Hash Algoritms (SHA) o Cyclic Redundancy Check (CRC): CRC32, CRC32C, SHA-1 y SHA-256. Las sumas de comprobación basadas en MD5 no son compatibles con la clase de almacenamiento S3 Express One Zone.

Para obtener más información, consulte Prácticas recomendadas adicionales para la suma de comprobación de S3.

Características admitidas

Para obtener información sobre las características de Amazon S3 compatibles con S3 Express One Zone, consulte ¿En qué se diferencia S3 Express One Zone?.

Cómo copiar un objeto de un bucket de uso general o de un bucket de directorio a un bucket de uso general
  1. Inicie sesión AWS Management Console Management Console y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.

  2. En el panel de navegación izquierdo, elija Instancias.

  3. Elija el bucket desde el que desea copiar objetos:

    • Para copiar desde un bucket de uso general, elija la pestaña Buckets de uso general.

    • Para copiar desde un bucket de directorio, seleccione la pestaña Buckets de directorio.

  4. Elija el bucket de uso general o el bucket de directorio que contenga los objetos que desea copiar.

  5. Elija la pestaña Objetcts (Objetos). En la página Objetos, seleccione la casilla de verificación situada a la izquierda de los nombres de los objetos que desea copiar.

  6. En el menú Actions (Acciones), elija Copy (Copiar).

    Aparece la página Copiar.

  7. En Destino, seleccione Bucket de directorio para el tipo de destino. Para especificar la ruta de destino, seleccione Examinar S3, desplácese hasta el destino y seleccione el botón de opción situado a la izquierda del destino. Seleccione Elegir destino en la esquina inferior derecha.

    También puede escribir la ruta de destino.

  8. En Sumas de comprobación, elija si desea copiar los objetos con las funciones de suma de comprobación existentes o sustituir las funciones de suma de comprobación existentes por otras nuevas. Al cargar los objetos, tenía la opción de especificar el algoritmo de suma de comprobación que se utilizó para verificar la integridad de los datos. Al copiar el objeto, tiene la opción de elegir una nueva función. Si no ha especificado una suma de comprobación adicional previamente, puede utilizar la sección Sumas de comprobación para agregar una.

    nota

    Incluso si opta por utilizar la misma función de suma de comprobación, el valor de la suma de comprobación podría cambiar si el objeto tiene un tamaño superior a 16 MB. El valor de la suma de comprobación podría cambiar debido a cómo se calculan las sumas de comprobación para las cargas multiparte. Para obtener más información acerca de cómo puede cambiar la suma de comprobación al copiar el objeto, consulte Uso de sumas de comprobación a nivel de parte para cargas multiparte.

    Para cambiar la función de suma de comprobación, elija Reemplazar por una nueva función de suma de comprobación. Elija la nueva función de suma de comprobación de la lista desplegable. Cuando se copia el objeto, la nueva suma de comprobación se calcula y almacena con el algoritmo especificado.

  9. En la esquina inferior derecha, elija Copiar. Amazon S3 copia el objeto en el destino.

Para copiar un objeto de un bucket de directorio a un bucket de uso general
  1. Inicie sesión AWS Management Console Management Console y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.

  2. En el panel de navegación izquierdo, elija Instancias.

  3. Seleccione la pestaña Buckets de directorio.

  4. Elija el bucket de directorio que contiene los objetos que desea copiar.

  5. Elija la pestaña Objetcts (Objetos). En la página Objetos, seleccione la casilla de verificación situada a la izquierda de los nombres de los objetos que desea copiar.

  6. En el menú Actions (Acciones), elija Copy (Copiar).

  7. En Destino, seleccione Bucket de uso general para el tipo de destino. Para especificar la ruta de destino, elija Examinar S3, desplácese hasta el destino y seleccione el botón de opción situado a la izquierda del destino. Seleccione Elegir destino en la esquina inferior derecha.

    También puede escribir la ruta de destino.

  8. En Sumas de comprobación, elija si desea copiar los objetos con las funciones de suma de comprobación existentes o sustituir las funciones de suma de comprobación existentes por otras nuevas. Al cargar los objetos, tenía la opción de especificar el algoritmo de suma de comprobación que se utilizó para verificar la integridad de los datos. Al copiar el objeto, tiene la opción de elegir una nueva función. Si no ha especificado una suma de comprobación adicional previamente, puede utilizar la sección Sumas de comprobación para agregar una.

    nota

    Incluso si opta por utilizar la misma función de suma de comprobación, el valor de la suma de comprobación podría cambiar si el objeto tiene un tamaño superior a 16 MB. El valor de la suma de comprobación podría cambiar debido a cómo se calculan las sumas de comprobación para las cargas multiparte. Para obtener más información acerca de cómo puede cambiar la suma de comprobación al copiar el objeto, consulte Uso de sumas de comprobación a nivel de parte para cargas multiparte.

    Para cambiar la función de suma de comprobación, elija Reemplazar por una nueva función de suma de comprobación. Elija la nueva función de suma de comprobación de la lista desplegable. Cuando se copia el objeto, la nueva suma de comprobación se calcula y almacena con el algoritmo especificado.

  9. En la esquina inferior derecha, elija Copiar. Amazon S3 copia el objeto en el destino.

SDK for Java 2.x
public static void copyBucketObject (S3Client s3, String sourceBucket, String objectKey, String targetBucket) { CopyObjectRequest copyReq = CopyObjectRequest.builder() .sourceBucket(sourceBucket) .sourceKey(objectKey) .destinationBucket(targetBucket) .destinationKey(objectKey) .build(); String temp = ""; try { CopyObjectResponse copyRes = s3.copyObject(copyReq); System.out.println("Successfully copied " + objectKey +" from bucket " + sourceBucket +" into bucket "+targetBucket); } catch (S3Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

En el siguiente ejemplo de copy-object se muestra cómo puede usar la AWS CLI para copiar un objeto de un bucket a otro. Puede copiar objetos entre tipos de buckets. Para ejecutar este comando, sustituya los marcadores de posición de entrada del usuario con su propia información.

aws s3api copy-object --copy-source bucket SOURCE_BUCKET/SOURCE_KEY_NAME --key TARGET_KEY_NAME --bucket TARGET_BUCKET_NAME

Para obtener más información, consulte copy-object en la Referencia de los c‎omandos de AWS CLI.