Consideraciones sobre Amazon S3 - AWS SDK para JavaScript

La Guía de referencia de la API de AWS SDK for JavaScript V3 describe en detalle todas las operaciones de la API para la versión 3 (V3) de AWS SDK for JavaScript.

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.

Consideraciones sobre Amazon S3

Carga multiparte de Amazon S3

En v2, el cliente de Amazon S3 contiene una operación upload() que admite la carga de objetos grandes con la característica de carga multiparte que ofrece Amazon S3.

En v3, está disponible el paquete @aws-sdk/lib-storage. Admite todas las características que ofrece la operación upload() de v2 y es compatible tanto con Node.js como con el tiempo de ejecución de los navegadores.

URL prefirmada de Amazon S3

En v2, el cliente de Amazon S3 contiene las operaciones getSignedUrl() y getSignedUrlPromise() para generar una URL que los usuarios pueden utilizar para cargar o descargar objetos de Amazon S3.

En v3, está disponible el paquete @aws-sdk/s3-request-presigner. Este paquete contiene las funciones para las operaciones getSignedUrl() y getSignedUrlPromise(). En esta entrada del blog se analizan los detalles de este paquete.

Redireccionamientos de región de Amazon S3

Si se transfiere una región incorrecta al cliente de Amazon S3 y se produce un error PermanentRedirect (estado 301), el cliente de Amazon S3 en v3 admite redireccionamientos de región (anteriormente conocido como Cliente global de Amazon S3 en v2). Puede usar el indicador followRegionRedirects en la configuración del cliente para que el cliente de Amazon S3 siga los redireccionamientos de región y admita su función como cliente global.

nota

Tenga en cuenta que esta característica puede generar una latencia adicional, ya que las solicitudes fallidas se reintentan con una región corregida cuando se recibe un error PermanentRedirect con el estado 301. Esta característica solo debe usarse si no conoce de antemano la región de sus buckets.

Streaming de Amazon S3 y respuestas almacenadas en búfer

El SDK v3 prefiere no almacenar en búfer respuestas que puedan ser de gran tamaño. Esto suele ocurrir en la operación GetObject de Amazon S3, que devolvía un Buffer en v2, pero devuelve un Stream en v3.

En el caso de Node.js, debe consumir el flujo o realizar la recopilación de elementos no utilizados del cliente o su controlador de solicitudes para mantener las conexiones abiertas al nuevo tráfico liberando los sockets.

// v2 const get = await s3.getObject({ ... }).promise(); // this buffers consumes the stream already.
// v3, consume the stream to free the socket const get = await s3.getObject({ ... }); // object .Body has unconsumed stream const str = await get.Body.transformToString(); // consumes the stream // other ways to consume the stream include writing it to a file, // passing it to another consumer like an upload, or buffering to // a string or byte array.

Para obtener más información, consulte la sección sobre agotamiento de sockets.