View a markdown version of this page

Best practice per AWS Sviluppo con AWS SDK per Java - AWS SDK per Java 1.x

La versione AWS SDK per Java 1.x ha raggiunto la fine del supporto il 31 dicembre 2025. Ti consigliamo di eseguire la migrazione alla versione per continuare AWS SDK for Java 2.x a ricevere nuove funzionalità, miglioramenti della disponibilità e aggiornamenti di sicurezza.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Best practice per AWS Sviluppo con AWS SDK per Java

Le seguenti best practice possono aiutarti a evitare problemi o problemi durante lo sviluppo di AWS applicazioni con. AWS SDK per Java Abbiamo organizzato le migliori pratiche per servizio.

S3

Evita ResetExceptions

Quando carichi oggetti utilizzando stream (tramite un AmazonS3 client oTransferManager), potresti riscontrare problemi di connettività di rete o di timeout. Amazon S3 Per impostazione predefinita, i AWS SDK per Java tentativi di riprovare i trasferimenti falliscono contrassegnando il flusso di input prima dell'inizio di un trasferimento e quindi reimpostandolo prima di riprovare.

Se lo stream non supporta il mark and reset, l'SDK genera un messaggio ResetException quando si verificano errori transitori e i nuovi tentativi sono abilitati.

Procedura consigliata

Ti consigliamo di utilizzare stream che supportino le operazioni di contrassegnazione e ripristino.

Il modo più affidabile per evitare un problema ResetException è fornire dati utilizzando un File or FileInputStream, che AWS SDK per Java può gestire senza essere vincolato dai limiti di contrassegnazione e reimpostazione.

Se lo stream non è un FileInputStream file ma supporta mark and reset, puoi impostare il limite di mark utilizzando il setReadLimit metodo di RequestClientOptions. Il valore predefinito è 128 KB. L'impostazione del valore limite di lettura su un byte superiore alla dimensione dello stream eviterà in modo affidabile un. ResetException

Ad esempio, se la dimensione massima prevista di uno stream è di 100.000 byte, imposta il limite di lettura su 100.001 (100.000 + 1) byte. Il mark and reset funzionerà sempre per 100.000 byte o meno. Tieni presente che ciò potrebbe far sì che alcuni stream memorizzino quel numero di byte in memoria.