O AWS SDK para Java 1.x entrou no modo de manutenção em 31 de julho de 2024 e o fim do suporte
Melhores práticas para o desenvolvimento da AWS com o AWS SDK para Java
As melhores práticas a seguir podem ajudar a evitar problemas à medida que você desenvolve aplicativos da AWS com o AWS SDK para Java. Organizamos as melhores práticas por serviço.
S3
Evitar ResetExceptions
Ao fazer upload de objetos para o Amazon S3 usando streamings (por meio de um cliente do AmazonS3 ou TransferManager), é possível ter problemas com a conectividade de rede ou o tempo de limite. Por padrão, o AWS SDK para Java tenta repetir transferências com falha marcando o fluxo de entrada antes do início de uma transferência e redefinindo antes de tentar novamente.
Se o streaming não oferecer suporte a marcar e redefinir, o SDK lançará um ResetException quando houver falhas transitórias, e novas tentativas forem permitidas.
Melhor prática
Recomendamos usar fluxos que deem suporte a operações de marcar e redefinir.
A maneira mais confiável de evitar um ResetException é fornecer dados usando um File
Se o streaming não for um FileInputStreamsetReadLimit de RequestClientOptions. O valor padrão é 128 KB. Definir o valor limite de leitura como um byte maior que o tamanho do fluxo certamente evitará um ResetException.
Por exemplo, se o tamanho esperado máximo de um fluxo for 100.000 bytes, defina o limite de leitura como 100.001 (100.000 + 1) bytes. A marca e a redefinição sempre funcionarão para 100.000 bytes ou menos. Lembre-se de que isso pode fazer alguns fluxos armazenarem em buffer esse número de bytes na memória.