Melhores práticas para AWS desenvolvimento com o AWS SDK for Java - AWS SDK for Java 1.x

Anunciamos o próximo end-of-support para AWS SDK for Java (v1). Recomendamos migrar para o AWS SDK for Java v2. Para saber as datas e receber detalhes adicionais e informações sobre como migrar, consulte o anúncio vinculado.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Melhores práticas para AWS desenvolvimento com o AWS SDK for Java

As práticas recomendadas a seguir podem ajudá-lo a evitar problemas ou problemas ao desenvolver AWS aplicativos com AWS SDK for Java o. Organizamos as melhores práticas por serviço.

S3

Evite ResetExceptions

Ao fazer upload de objetos usando fluxos ( Amazon S3 por meio de um AmazonS3 cliente ouTransferManager), você pode encontrar problemas de conectividade de rede ou de tempo limite. Por padrão, as AWS SDK for Java tentativas de repetir as transferências falharam marcando o fluxo de entrada antes do início de uma transferência e, em seguida, redefinindo-o antes de tentar novamente.

Se o stream não suportar a marcação e a redefinição, o SDK lançará um ResetExceptionquando houver falhas transitórias e as novas tentativas forem ativadas.

Melhor prática

Recomendamos usar fluxos que deem suporte a operações de marcar e redefinir.

A maneira mais confiável de evitar a ResetExceptioné fornecer dados usando um arquivo ou FileInputStream, que eles AWS SDK for Java possam manipular sem serem limitados por limites de marcação e redefinição.

Se o stream não for um FileInputStream, mas oferecer suporte à marcação e à redefinição, você poderá definir o limite de marcas usando o setReadLimit método de RequestClientOptions. O valor padrão é 128 KB. Definir o valor limite de leitura como um byte maior que o tamanho do fluxo evitará de forma confiável a. 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.