Cargue archivos a un depósito de Lightsail con carga multiparte - Amazon Lightsail

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cargue archivos a un depósito de Lightsail con carga multiparte

Con la carga multiparte, puede cargar un solo archivo al bucket como un conjunto de partes. Cada parte es una parte contigua de los datos del archivo. Puede cargar estas partes del archivo de forma independiente y en cualquier orden. Si la transmisión de cualquier parte falla, puede retransmitir esta parte sin que las demás partes se vean afectadas. Una vez cargadas todas las partes del archivo, Amazon S3 las ensambla y crea el objeto en el bucket de Amazon Lightsail. Por lo general, cuando el tamaño del objeto alcanza los 100 MB, deberá usar las cargas multipartes en lugar de cargar el objeto en una única operación. Para obtener más información sobre los buckets, consulte Almacenamiento de objetos.

El uso de la carga multiparte proporciona las siguientes ventajas:

  • Mayor velocidad: puede cargar las partes al mismo tiempo para aumentar la velocidad.

  • Recuperación rápida ante cualquier problema de red: una parte de tamaño más pequeño reduce el impacto de tener que reiniciar una carga fallida debido a un error de red.

  • Carga a lo largo del tiempo: puede cargar partes de archivos a lo largo del tiempo. Después de iniciar una carga multiparte, tiene 24 horas para completar la carga multiparte.

  • Inicio de una carga antes de conocer el tamaño final del archivo: puede cargar un archivo a medida que lo crea.

Le recomendamos que use la carga multiparte de las siguientes maneras:

  • Si carga archivos grandes en una red estable de banda ancha, la carga multiparte aumenta al máximo el uso de su ancho de banda disponible al cargar los archivos en partes y en paralelo para un rendimiento en varios subprocesos.

  • Si realiza la carga en una red irregular, use la carga multiparte para aumentar la resiliencia ante errores de red evitando reinicios de la carga. Al usar la carga multiparte, solo reintenta la carga de las partes que se han interrumpido. No es necesario volver a empezar o cargar el archivo completo de nuevo.

Contenido

Proceso de carga multiparte

La carga multiparte es un proceso de tres pasos que utiliza las acciones de Amazon S3 para cargar archivos a su bucket en Lightsail:

  1. La carga multiparte se inicia mediante la acción. CreateMultipartUpload

  2. Las partes del archivo se cargan mediante la UploadPartacción.

  3. La carga multiparte se completa mediante la CompleteMultipartUploadacción.

nota

Puedes detener una carga de varias partes después de haberla iniciado mediante la AbortMultipartUploadacción.

Cuando se completa la solicitud de carga multiparte, Amazon Simple Storage Service construye el objeto a partir de las partes cargadas. Luego puede acceder al objeto de la misma manera que accedería a cualquier otro objeto en su bucket.

Puede mostrar todas las cargas multipartes en curso u obtener una lista de las partes que ha cargado en una carga multiparte específica. En esta sección, se explicarán cada una de estas operaciones.

Inicio de la carga multiparte

Al enviar una solicitud para iniciar una carga multiparte, Amazon Simple Storage Service devuelve una respuesta con un ID de carga. Se trata de un identificador único para la carga multiparte. Debe incluir el ID de carga siempre que cargue partes, muestre partes, complete una carga o pare una carga. Si desea proporcionar metadatos que describen el objeto que está cargando, debe proporcionarlos en la solicitud para iniciar la carga multiparte.

Carga de partes

Al cargar una parte, además del ID de carga, debe especificar un número de parte. Puede seleccionar cualquier número de parte comprendido entre 1 y 10 000. Un número de parte identifica exclusivamente una parte y su posición en el objeto que se está cargando. El número de parte que elija no tiene que ser necesariamente una secuencia consecutiva (por ejemplo: puede ser 1, 5 y 14). Si carga una parte nueva con el mismo número que una parte ya cargada, se sobrescribirá la parte existente.

Cada vez que subes una pieza, Amazon Simple Storage Service devuelve un ETag encabezado en su respuesta. Para cada carga de piezas, debe registrar el número de pieza y el ETag valor. Debe incluir estos valores en la solicitud posterior para completar la carga multiparte.

nota

Todas las partes cargadas de una carga multiparte se almacenan en su bucket. Consumirán el espacio de almacenamiento de su bucket hasta que complete la carga, detenga la carga o se agote el tiempo de espera de la carga. Para obtener más información, consulte Retención de cargas multiparte más adelante en esta guía.

Finalización de la carga multiparte

Al completar una carga multiparte, Amazon Simple Storage Service crea un objeto mediante la concatenación de las partes en orden ascendente según el número de parte. Si se proporcionaron los metadatos de algún objeto en la solicitud de inicio de carga multiparte, Amazon Simple Storage Service asocia estos metadatos al objeto. Después de una solicitud de finalización realizada correctamente, las partes ya no existirán.

La solicitud completa de carga de varias partes debe incluir el identificador de carga y una lista de los números de pieza y ETag los valores correspondientes. La respuesta de Amazon Simple Storage Service incluye una ETag que identifica de forma exclusiva los datos del objeto combinados. No ETag se trata necesariamente de un MD5 hash de los datos del objeto.

Puede optar por parar la carga multiparte. Después de parar una carga multiparte, no puede volver a cargar ninguna parte con ese ID de carga. A continuación, se libera todo el almacenamiento de las partes de la carga multiparte cancelada. Si la carga de alguna de las partes estuviera en curso, todavía se puede ejecutar correctamente o producir un error una vez detenida. Para liberar todo el espacio de almacenamiento consumido por las partes, debe parar una carga multiparte solo después de haber completado las cargas de todas las partes.

Listas de cargas multiparte

Puede enumerar las partes de una carga multiparte específica o todas las cargas multipartes en curso. La operación de lista de partes devuelve la información de las partes que ha cargado para una carga multiparte específica. Para cada solicitud de lista de partes, Amazon Simple Storage Service devuelve la información de las partes para la carga multiparte específica, hasta un máximo de 1000 partes. Si hay más de 1 000 partes en la carga multiparte, debe enviar una serie de solicitudes de lista de partes para recuperar todas las partes. Tenga en cuenta que la lista de partes que se devuelve no incluye las partes en proceso de carga. Con la operación de enumeración de cargas multiparte, puede obtener una lista de las cargas multiparte en curso.

Una carga multiparte en curso es una carga iniciada, pero que aún no se ha completado ni parado. Cada solicitud devuelve 1 000 cargas multipartes como máximo. Si hay más de 1 000 cargas multiparte en curso, debe enviar otras solicitudes para recuperar las cargas multiparte restantes. Solamente utilice la lista devuelta para verificación. No utilice el resultado de esta lista al enviar una solicitud de finalización de carga multiparte. En su lugar, mantenga su propia lista de los números de pieza que especificó al cargar las piezas y los ETag valores correspondientes que devuelve Amazon Simple Storage Service.

Operaciones de carga multiparte simultáneas

En un entorno de desarrollo distribuido, es posible que la aplicación inicie varias actualizaciones en el mismo objeto simultáneamente. La aplicación puede iniciar varias cargas multipartes con la misma clave de objeto. Para cada una de estas cargas, la aplicación puede cargar las partes y enviar una solicitud de carga completa a Amazon Simple Storage Service para crear el objeto. Cuando los buckets tienen el control de versiones habilitado, siempre se creará una nueva versión cuando se complete una carga multiparte. En el caso de los buckets que no tienen el control de versiones habilitado, es posible que tenga prioridad otra solicitud, como las solicitudes que se reciben después de iniciarse una carga multiparte y antes de que se complete.

nota

Es posible que otras solicitudes tengan prioridad, como las solicitudes que se reciben después de iniciar una carga multiparte y antes de que se complete. Por ejemplo, otra operación podría eliminar una clave después de que inicie una carga multiparte con esa clave y antes de que se complete la carga multiparte. Si esto ocurre, la respuesta de carga multiparte completa podría indicar una creación correcta del objeto sin que vea el objeto.

Retención de cargas multiparte

Todas las partes cargadas de una carga multiparte se almacenan en su bucket. Consumirán el espacio de almacenamiento de su depósito hasta que complete la carga, detenga la carga o se agote el tiempo de espera de la carga. Una carga multiparte agota el tiempo de espera y la carga multiparte se elimina 24 horas después de su creación. Cuando detiene una carga multiparte o se agota el tiempo de espera, se eliminan todas las partes cargadas y se libera el espacio de almacenamiento que utilizaban en el bucket.

Límites de carga multiparte de Amazon Simple Storage Service

En la siguiente tabla se proporcionan las especificaciones principales de la carga multiparte.

  • Tamaño máximo de objeto: 5 TB

  • Cantidad máxima de partes por carga: 10 000

  • Números de parte: 1-10 000 (inclusive)

  • Tamaño de las partes: 5 MB (mínimo) - 5 GB (máximo). No hay límite de tamaño en la última parte de la carga multiparte.

  • Cantidad máxima de partes devueltas para una solicitud de lista de partes: 1000

  • Cantidad máxima de cargas multiparte devueltas en una solicitud de lista de cargas multiparte: 1000

División del archivo para cargarlo

Utilice el comando split en el sistema operativo Linux o Unix para dividir un archivo en varias partes que luego cargará en su bucket. Hay aplicaciones gratuitas similares que puede usar en el sistema operativo Windows para dividir un archivo. Después de dividir el archivo en varias partes, continúe con la sección Inicio de una carga multiparte de esta guía.

Inicio de una carga multiparte con la AWS CLI

Complete el siguiente procedimiento para iniciar una carga multiparte mediante la AWS Command Line Interface (AWS CLI). Para ello, utilice el comando create-multipart-upload. Para obtener más información, consulte create-multipart-uploadla Referencia de AWS CLI comandos.

nota

Debe instalarlo AWS CLI y configurarlo para Lightsail y Amazon S3 antes de continuar con este procedimiento. Para obtener más información, consulte Configurar AWS CLI para que funcione con Lightsail.

  1. Abra una ventana del símbolo del sistema o del terminal.

  2. Ingrese el siguiente comando para crear una carga multiparte para el bucket.

    aws s3api create-multipart-upload --bucket BucketName --key ObjectKey --acl bucket-owner-full-control

    En el comando, sustituya el texto del ejemplo siguiente por el suyo propio:

    • BucketName- El nombre del depósito para el que quieres crear una carga multiparte.

    • ObjectKey- La clave de objeto que se utilizará en el archivo que cargará.

    Ejemplo:

    aws s3api create-multipart-upload --bucket amzn-s3-demo-bucket --key sailbot.mp4 --acl bucket-owner-full-control

    Debería ver un resultado similar al del siguiente ejemplo: La respuesta incluye un UploadID, que debe especificar en los siguientes comandos para cargar partes y para completar la carga multiparte de este objeto.

    Resultado del create-multipart-upload comando

    Después de tener el UploadID para la carga multiparte, continúe a la siguiente sección Carga de una parte con la AWS CLI de esta guía y comience a cargar partes.

Cargue una pieza mediante el AWS CLI

Complete el siguiente procedimiento para cargar una parte de una carga multiparte mediante la AWS Command Line Interface (AWS CLI). Para ello, utilice el comando upload-part. Para obtener más información, consulte upload-part en la Referencia de comandos de la AWS CLI .

nota

Debe instalarlo AWS CLI y configurarlo para Lightsail y Amazon S3 antes de continuar con este procedimiento. Para obtener más información, consulte Configurar AWS CLI para que funcione con Lightsail.

  1. Abra una ventana del símbolo del sistema o del terminal.

  2. Ingrese el siguiente comando para cargar una parte en su bucket.

    aws s3api upload-part --bucket BucketName --key ObjectKey --part-number Number --body FilePart --upload-id "UploadID" --acl bucket-owner-full-control

    En el comando, sustituya el texto del ejemplo siguiente por el suyo propio:

    • BucketName- El nombre del depósito para el que quieres crear una carga multiparte.

    • ObjectKey- La clave de objeto que se utilizará en el archivo que cargará.

    • Number - El número de pieza de la pieza que vas a subir. Un número de parte identifica exclusivamente una parte y su posición en el objeto que se está cargando. Asegúrese de aumentar gradualmente el parámetro --part-number con cada parte que cargue. Para ello, numérelas en el orden en que Amazon Simple Storage Service debe ensamblar el objeto cuando complete la carga multiparte.

    • FilePart - El archivo de pieza que se va a cargar desde su ordenador.

    • UploadID - El identificador de carga de la carga multiparte que creaste anteriormente en esta guía.

    Ejemplo:

    aws s3api upload-part --bucket amzn-s3-demo-bucket --key sailbot.mp4 --part-number 1 --body sailbot.mp4.001 --upload-id "R4QU.mO.exampleiHWiLOeNw7JtXX7OotRhTLsXXCzF21CZdYlfj5lfjtiMnpzVw2WPj.exampleBTmL_N_.42.DlHYOTsITFsX.tO3XOUTTAHiCxY5VR8jWRGdkVkUG" --acl bucket-owner-full-control

    Debería ver un resultado similar al del siguiente ejemplo: Repita el comando upload-part para cada pieza que cargue. La respuesta para cada una de las solicitudes de carga de partes incluirá un valor ETag para la parte que cargue. Registre los valores ETag para cada una de las partes que cargue. Necesitará todos los valores ETag para completar la carga multiparte, que se aborda más adelante en esta guía.

    Resultado del comando upload-part

Haz una lista de las partes de una carga multiparte mediante el AWS CLI

Complete el siguiente procedimiento para enumerar partes de una carga multiparte mediante la AWS Command Line Interface (AWS CLI). Para ello, utilice el comando list-parts. Para obtener más información, consulte list-parts en la Referencia de comandos de la AWS CLI .

Complete este procedimiento para obtener los valores ETag para todas las partes cargadas en una carga multiparte. Necesitará estos valores para completar la carga multiparte más adelante en esta guía. Sin embargo, si registró todos los valores ETag de la respuesta de las cargas de partes, puede omitir este procedimiento y continuar con la sección Creación de un archivo .json de carga multiparte de esta guía.

nota

Debe instalarlo AWS CLI y configurarlo para Lightsail y Amazon S3 antes de continuar con este procedimiento. Para obtener más información, consulte Configurar AWS CLI para que funcione con Lightsail.

  1. Abra una ventana del símbolo del sistema o del terminal.

  2. Ingrese el siguiente comando para enumerar las partes de una carga multiparte en su bucket.

    aws s3api list-parts --bucket BucketName --key ObjectKey --upload-id "UploadID"

    En el comando, sustituya el texto del ejemplo siguiente por el suyo propio:

    • BucketName- El nombre del depósito para el que quieres enumerar las partes de una carga multiparte.

    • ObjectKey- La clave de objeto de la carga multiparte.

    • UploadID - El identificador de carga de la carga multiparte que creaste anteriormente en esta guía.

    Ejemplo:

    aws s3api list-parts --bucket amzn-s3-demo-bucket --key sailbot.mp4 --upload-id "R4QU.mO.exampleiHWiLOeNw7JtXX7OotRhTLsXXCzF21CZdYlfj5lfjtiMnpzVw2WPj.exampleBTmL_N_.42.DlHYOTsITFsX.tO3XOUTTAHiCxY5VR8jWRGdkVkUG"

    Debería ver un resultado similar al del siguiente ejemplo: La respuesta enumera todos los números de parte y valores ETag para las piezas que ha cargado en la carga multiparte. Copie estos valores en el portapapeles y continúe con la sección Creación de un archivo .json de carga multiparte de esta guía.

    Resultado del comando list-parts

Creación de un archivo .json de carga multiparte

Complete el siguiente procedimiento para crear un archivo .json de carga multiparte que defina todas las partes que ha cargado y sus valores ETag. Esto es necesario más adelante en esta guía para completar la carga multiparte.

  1. Abra un editor de texto y pegue la respuesta del comando list-parts que solicitó en la sección anterior de esta guía.

    El resultado debe ser similar al siguiente ejemplo:

    JSONArchivo de carga multiparte número 1
  2. Vuelva a formatear el archivo de texto como se muestra en el ejemplo siguiente:

    Fichero de carga multiparte JSON número 2
  3. Guarde el archivo de texto en su ordenador como mpstructure.json y continúe con la sección Complete una carga multiparte utilizando la AWS CLI sección de esta guía.

Complete una carga de varias partes mediante el AWS CLI

Complete el siguiente procedimiento para completar una carga multiparte mediante la AWS Command Line Interface (AWS CLI). Para ello, utilice el comando complete-multipart-upload. Para obtener más información, consulte complete-multipart-uploadla Referencia de AWS CLI comandos.

nota

Debe instalarlo AWS CLI y configurarlo para Lightsail y Amazon S3 antes de continuar con este procedimiento. Para obtener más información, consulte Configurar AWS CLI para que funcione con Lightsail.

  1. Abra una ventana del símbolo del sistema o del terminal.

  2. Ingrese el siguiente comando para cargar una parte en su bucket.

    aws s3api complete-multipart-upload --multipart-upload file://JSONFileName --bucket BucketName --key ObjectKey --upload-id "UploadID" --acl bucket-owner-full-control

    En el comando, sustituya el texto del ejemplo siguiente por el suyo propio:

    • JSONFileName- El nombre del archivo.json que creaste anteriormente en esta guía (por ejemplo,mpstructure.json).

    • BucketName- El nombre del depósito para el que quieres completar una carga multiparte.

    • ObjectKey- La clave de objeto de la carga multiparte.

    • UploadID - El identificador de carga de la carga multiparte que creaste anteriormente en esta guía.

    aws s3api complete-multipart-upload --multipart-upload file://mpstructure.json --bucket amzn-s3-demo-bucket --key sailbot.mp4 --upload-id "R4QU.mO.exampleiHWiLOeNw7JtXX7OotRhTLsXXCzF21CZdYlfj5lfjtiMnpzVw2WPj.exampleBTmL_N_.42.DlHYOTsITFsX.tO3XOUTTAHiCxY5VR8jWRGdkVkUG" --acl bucket-owner-full-control

    Debería ver una respuesta similar a la del siguiente ejemplo. Esto confirma que se ha completado la carga multiparte. El objeto ahora está ensamblado y disponible en el bucket.

    Resultado del comando complete-multipart-upload

Enumere las cargas multiparte de un bucket mediante el AWS CLI

Complete el siguiente procedimiento para enumerar todas las cargas multiparte de un bucket mediante la AWS Command Line Interface (AWS CLI). Para ello, utilice el comando list-multipart-uploads. Para obtener más información, consulte la list-multipart-uploadsReferencia de AWS CLI comandos.

nota

Debe instalarlo AWS CLI y configurarlo para Lightsail y Amazon S3 antes de continuar con este procedimiento. Para obtener más información, consulte Configurar AWS CLI para que funcione con Lightsail.

  1. Abra una ventana del símbolo del sistema o del terminal.

  2. Ingrese el siguiente comando para cargar una parte en su bucket.

    aws s3api list-multipart-uploads --bucket BucketName

    En el comando, sustituya BucketNamecon el nombre del depósito para el que quieres enumerar todas las cargas multiparte.

    Ejemplo:

    aws s3api list-multipart-uploads --bucket amzn-s3-demo-bucket

    Debería ver una respuesta similar a la del siguiente ejemplo.

    Resultado del comando list-multipart-uploads

Detenga una carga multiparte mediante el AWS CLI

Complete el siguiente procedimiento para detener una carga multiparte mediante AWS Command Line Interface ()AWS CLI. Haga esto si inició una carga multiparte pero ya no desea continuar. Para ello, utilice el comando abort-multipart-upload. Para obtener más información, consulte abort-multipart-uploadla Referencia de AWS CLI comandos.

nota

Debe instalarlo AWS CLI y configurarlo para Lightsail y Amazon S3 antes de continuar con este procedimiento. Para obtener más información, consulte Configurar AWS CLI para que funcione con Lightsail.

  1. Abra una ventana del símbolo del sistema o del terminal.

  2. Ingrese el siguiente comando para cargar una parte en su bucket.

    aws s3api abort-multipart-upload --bucket BucketName --key ObjectKey --upload-id "UploadID" --acl bucket-owner-full-control

    En el comando, sustituya el texto del ejemplo siguiente por el suyo propio:

    • BucketName- El nombre del depósito para el que quieres detener una carga de varias partes.

    • ObjectKey- La clave de objeto de la carga multiparte.

    • UploadID - El identificador de carga de la carga multiparte que quieres detener.

    Ejemplo:

    aws s3api abort-multipart-upload --bucket amzn-s3-demo-bucket --key sailbot.mp4 --upload-id "R4QU.mO.exampleiHWiLOeNw7JtXX7OotRhTLsXXCzF21CZdYlfj5lfjtiMnpzVw2WPj.exampleBTmL_N_.42.DlHYOTsITFsX.tO3XOUTTAHiCxY5VR8jWRGdkVkUG" --acl bucket-owner-full-control

    Este comando no devuelve ninguna respuesta. Puede ejecutar un comando list-multipart-uploads para confirmar que se detuvo la carga multiparte.