View a markdown version of this page

Funziona con Amazon S3 - AWS SDK for Java 2.x

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à.

Funziona con Amazon S3

Questa sezione fornisce informazioni di base per lavorare con Amazon S3 utilizzando. AWS SDK for Java 2.x Questa sezione completa gli esempi di Amazon S3 Java v2 presentati nella sezione Esempi di codice di questa guida.

Client S3 in AWS SDK for Java 2.x

AWS SDK for Java 2.x Fornisce diversi tipi di client S3. La tabella seguente mostra le differenze e può aiutarti a decidere qual è la soluzione migliore per i tuoi casi d'uso.

Diverse versioni di client Amazon S3
Client S3 Breve descrizione Quando utilizzare Limitation/drawback

AWS CRT-based Cliente S3

Interfaccia: S3AsyncClient

Costruttore: S3CrtAsyncClientBuilder

  • Fornisce le stesse operazioni API asincrone del client asincrono Java-based S3 ma con prestazioni superiori.

  • aws-crtRichiede la dipendenza.

  • Supporta trasferimenti paralleli automatici (multiparte).

Per informazioni, consulta Usa un client S3 performante: client S3 basato su AWS CRT.

  • La tua applicazione trasferisce oggetti di grandi dimensioni (> 8 MB) e desideri prestazioni massimizzate.

  • Desiderate caricare oggetti con una lunghezza del contenuto sconosciuta.

  • Desideri un pool di connessioni e un bilanciamento del carico DNS avanzati, che migliorano la velocità di trasmissione e le prestazioni.

  • Desiderate una maggiore affidabilità del trasferimento in caso di guasto della rete. Le singole parti guaste vengono ritentate senza riavviare il trasferimento dall'inizio.

Java-based Client asincrono S3 con multipart abilitato

Interfaccia: S3AsyncClient

Costruttore: S3AsyncClientBuilder

  • Fornisce un'API asincrona.

  • Supporta i trasferimenti paralleli automatici (multiparte) quando si abilita il multipart al momento della creazione.

Per informazioni, consulta Configura il client asincrono S3 basato su Java per utilizzare trasferimenti paralleli.

  • La tua applicazione trasferisce oggetti di grandi dimensioni e desideri prestazioni migliorate.

  • vuoi caricare un oggetto con una lunghezza del contenuto sconosciuta.

  • Desiderate una maggiore affidabilità del trasferimento in caso di guasto della rete. Le singole parti guaste vengono ritentate senza riavviare il trasferimento dall'inizio.

  • Sono necessarie opzioni di configurazione che non sono disponibili con il AWS CRT-based client S3.

Meno performante del client AWS CRT-based S3.

Java-based Client asincrono S3 senza multipart abilitato

Interfaccia: S3AsyncClient

Costruttore: S3AsyncClientBuilder

  • Fornisce un'API asincrona.

  • Stai trasferendo oggetti che pesano meno di 8 MB.

  • Vuoi un'API asincrona.

Nessuna ottimizzazione delle prestazioni.

Java-based Client di sincronizzazione S3

Interfaccia: S3Client

Costruttore: S3ClientBuilder

  • Fornisce un'API sincrona.

  • Stai trasferendo oggetti che pesano meno di 8 MB.

  • Vuoi un'API sincrona.

Nessuna ottimizzazione delle prestazioni.

Nota

A partire dalla versione 2.18.x in poi, AWS SDK for Java 2.x utilizza l'indirizzamento in stile host virtuale quando include un endpoint override. Questo vale purché il nome del bucket sia un'etichetta DNS valida.

Chiama il forcePathStylemetodo con true nel tuo client builder per forzare il client a utilizzare l'indirizzamento in stile path per i bucket.

L'esempio seguente mostra un client di servizio configurato con un endpoint override e che utilizza un indirizzamento in stile path.

S3Client client = S3Client.builder() .region(Region.US_WEST_2) .endpointOverride(URI.create("https://s3.us-west-2.amazonaws.com")) .forcePathStyle(true) .build();