Migliori pratiche per AWS lo sviluppo con AWS SDK for Java - AWS SDK for Java 1. x

La AWS SDK for Java versione 1.x è entrata in modalità manutenzione il 31 luglio 2024 e sarà disponibile il 31 end-of-supportdicembre 2025. Ti consigliamo di eseguire la migrazione a per continuare AWS SDK for Java 2.xa 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à.

Migliori pratiche per AWS lo sviluppo con AWS SDK for Java

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

S3

Evita ResetExceptions

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

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

Procedura ottimale

Ti consigliamo di utilizzare stream che supportano le operazioni di mark e reset.

Il modo più affidabile per evitare a ResetExceptionè fornire dati utilizzando un File or FileInputStream, che AWS SDK for Java possono gestire senza essere vincolati dai limiti di marcatura e ripristino.

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

Ad esempio, se la dimensione massima prevista di uno stream è 100.000 byte, imposta il limite di lettura su 100.001 (100.000 + 1) byte. La marcatura e il ripristino funzioneranno sempre per 100.000 byte o meno. Tieni presente che ciò potrebbe far sì che alcuni stream inseriscano nel buffer quel numero di byte nella memoria.