Prácticas recomendadas de desarrollo de aplicaciones de AWS con AWS SDK para Java - AWS SDK para Java 1.x

AWS SDK para Java 1.x ha entrado en modo de mantenimiento el 31 de julio de 2024 y llegará al final de soporte el 31 de diciembre de 2025. Le recomendamos que migre a AWS SDK for Java 2.x para seguir recibiendo nuevas características, mejoras de disponibilidad y actualizaciones de seguridad.

Prácticas recomendadas de desarrollo de aplicaciones de AWS con AWS SDK para Java

Las siguientes prácticas recomendadas pueden ayudarle a evitar o resolver problemas cuando desarrolla aplicaciones de AWS con AWS SDK para Java. Hemos organizado las prácticas recomendadas por servicio.

S3

Evitar excepciones ResetExceptions

Cuando carga objetos en Amazon S3 mediante el uso de secuencias (ya sea a través de un cliente de AmazonS3 o TransferManager), es posible que surjan problemas de conectividad de red o tiempo de espera. De forma predeterminada, AWS SDK para Java intenta recuperar las transferencias que han producido un error marcando la secuencia de entrada antes del comienzo de la transferencia y reiniciándola antes de volver a realizar la transferencia.

Si la secuencia no admite el marcado y el restablecimiento, el SDK produce una excepción ResetException cuando hay errores transitorios y los reintentos están habilitados.

Práctica recomendada

Le recomendamos que utilice secuencias que admitan operaciones de marcado y restablecimiento.

El método más fiable para evitar una excepción ResetException es proporcionar los datos mediante el uso de un objeto File o FileInputStream, que pueda controlar sin las restricciones impuestas por los límites del marcado o restablecimiento.

Si la secuencia no es un FileInputStream pero admite el marcado y restablecimiento, puede definir el límite de marcado mediante el método setReadLimit de RequestClientOptions. Su valor predeterminado es 128 KB. Al establecer el valor del límite de lectura en un byte más que el tamaño de la secuencia, evitará que se produzca una excepción ResetException.

Por ejemplo, si el tamaño máximo esperado de una secuencia es de 100 000 bytes, defina el límite de lectura en 100 001 (100 000+1) bytes. Las operaciones de marca y restablecimiento siempre funcionan para 100 000 bytes o menos. Tenga en cuenta que esto puede provocar que algunas secuencias almacenen ese número de bytes en memoria.