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

Abbiamo annunciato l'imminente versione end-of-support di AWS SDK for Java (v1). Ti consigliamo di migrare alla AWS SDK for Java v2. Per date, dettagli aggiuntivi e informazioni su come effettuare la migrazione, consulta l'annuncio collegato.

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 consigliata

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.