Meilleures pratiques en matière AWS de développement avec AWS SDK for Java - AWS SDK for Java 1. x

Nous avons annoncé la sortie prochaine end-of-support de AWS SDK for Java (v1). Nous vous recommandons de migrer vers la AWS SDK for Java version v2. Pour les dates, les détails supplémentaires et les informations sur la façon de migrer, reportez-vous à l'annonce associée.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Meilleures pratiques en matière AWS de développement avec AWS SDK for Java

Les meilleures pratiques suivantes peuvent vous aider à éviter les problèmes lorsque vous développez des AWS applications avec le AWS SDK for Java. Nous avons organisé les bonnes pratiques par service.

S3

Éviter ResetExceptions

Lorsque vous chargez des objets à Amazon S3 l'aide de flux (via un AmazonS3 client ouTransferManager), vous pouvez rencontrer des problèmes de connectivité réseau ou de délai d'expiration. Par défaut, les AWS SDK for Java tentatives de nouvelle tentative de transfert ont échoué en marquant le flux d'entrée avant le début du transfert, puis en le réinitialisant avant de réessayer.

Si le flux ne prend pas en charge le marquage et la réinitialisation, le SDK lance un message en ResetExceptioncas d'échec transitoire et les nouvelles tentatives sont activées.

Bonne pratique

Nous vous recommandons d'utiliser des flux qui prennent en charge les opérations de marquage et de réinitialisation.

Le moyen le plus fiable d'éviter un ResetExceptionest de fournir des données à l'aide d'un fichier ou FileInputStream, qu'ils AWS SDK for Java peuvent gérer sans être limités par des limites de marquage et de réinitialisation.

Si le stream n'est pas un FileInputStreammais qu'il prend en charge le marquage et la réinitialisation, vous pouvez définir la limite de points en utilisant la setReadLimit méthode de RequestClientOptions. Sa valeur par défaut est 128 Ko. La définition de la valeur limite de lecture à un octet de plus que la taille du flux évitera de manière fiable un ResetException.

Par exemple, si la taille maximale attendue d'un flux est 100 000 octets, définissez la limite de lecture sur 100 001 (100 000 + 1) octets. Le marquage et la réinitialisation fonctionneront toujours pour 100 000 octets ou moins. Ayez à l'esprit que cela peut entraîner le fait que certains flux mettent en mémoire tampon le nombre d'octets en mémoire.