Utilizzo di AWS SDK for Java con Amazon S3 Glacier - Amazon S3 Glacier

Se non conosci lo spazio di archiviazione di Amazon Simple Storage Service (Amazon S3), ti consigliamo di consultare ulteriori informazioni sulle classi di archiviazione S3 Glacier in Amazon S3, recupero istantaneo S3 Glacier, recupero flessibile S3 Glacier e Deep Archive S3 Glacier. Per ulteriori informazioni, consulta le classi di storage S3 Glacier e le classi di storage per l'archiviazione di oggetti nella Amazon S3 User Guide.

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

Utilizzo di AWS SDK for Java con Amazon S3 Glacier

AWS SDK for Java fornisce API di alto e basso livello per Amazon S3 Glacier (S3 Glacier), come descritto in Utilizzo degli AWS SDK con Amazon S3 Glacier. Per ulteriori informazioni sul download di AWS SDK for Java, consulta Amazon SDK per Java.

Nota

AWS SDK for Java fornisce client sicuri per l'accesso a S3 Glacier. Come best practice, le tue applicazioni devono creare un client e riutilizzarlo tra i thread.

Utilizzo dell'API di basso livello

La classe AmazonGlacierClient di basso livello fornisce tutti i metodi che eseguono la mappatura alle operazioni REST sottostanti di S3 Glacier (Documentazione di riferimento dell'API per Amazon S3 Glacier). Quando chiami uno di questi metodi, devi creare un oggetto di richiesta corrispondente e fornire un oggetto di risposta in cui il metodo può restituire la risposta di S3 Glacier all'operazione.

Ad esempio, la classe AmazonGlacierClient fornisce il metodo createVault per creare un vault. Questo metodo esegue la mappatura all'operazione REST Create Vault sottostante (vedi Create Vault (PUT vault)). Per utilizzare questo metodo, devi creare istanze dell'oggetto CreateVaultResult che riceve la risposta di S3 Glacier come mostrato nel seguente frammento di codice Java:

AmazonGlacierClient client = new AmazonGlacierClient(credentials); client.setEndpoint("https://glacier.us-west-2.amazonaws.com/"); CreateVaultRequest request = new CreateVaultRequest() .withAccountId("-") .withVaultName(vaultName); CreateVaultResult result = client.createVault(createVaultRequest);

Tutti gli esempi di basso livello nella guida utilizzano questo modello.

Nota

Il segmento di codice precedente specifica AccountID quando si crea la richiesta. Tuttavia, quando si utilizza il kit AWS SDK for Java, il valore AccountId nella richiesta è facoltativo e di conseguenza tutti gli esempi di basso livello in questa guida non impostano tale valore. AccountId è l'ID di Account AWS. Questo valore deve corrispondere all'ID dell'Account AWS associato alle credenziali utilizzate per firmare la richiesta. Puoi specificare l'ID Account AWS o eventualmente un "-" (trattino), nel qual caso S3 Glacier utilizza l'ID Account AWS associato alle credenziali utilizzate per firmare la richiesta. Se specifichi l'ID del tuo account, non includere trattini nell'ID. Quando utilizzi il kit AWS SDK for Java, se non fornisci l'ID dell'account, la libreria lo imposta su "-".

Utilizzo dell'API di alto livello

Per semplificare ulteriormente lo sviluppo di applicazioni, il kit AWS SDK for Java fornisce la classe ArchiveTransferManager che implementa un'astrazione di livello più alto per alcuni dei metodi nell'API di basso livello. Questa classe offre metodi utili, ad esempio upload e download per le operazioni di archivio.

Ad esempio, il frammento di codice Java seguente utilizza il metodo upload di alto livello per caricare un archivio.

String vaultName = "examplevault"; String archiveToUpload = "c:/folder/exampleArchive.zip"; ArchiveTransferManager atm = new ArchiveTransferManager(client, credentials); String archiveId = atm.upload(vaultName, "Tax 2012 documents", new File(archiveToUpload)).getArchiveId();

Nota che qualsiasi operazione eseguita viene applicata alla regione AWS che hai specificato alla creazione dell'oggetto ArchiveTransferManager. Se non specifichi alcuna regione AWS, AWS SDK for Java imposta us-east-1 come regione AWS predefinita.

Tutti gli esempi di alto livello in questa guida utilizzano questo pattern.

Nota

La classe ArchiveTransferManager di alto livello può essere creata con un'istanza AmazonGlacierClient o AWSCredentials.

Esecuzione di esempi Java per Amazon S3 Glacier mediante Eclipse

Il modo più semplice di iniziare a utilizzare i codici di esempio Java è installare l'ultima versione di AWS Toolkit for Eclipse. Per informazioni sull'installazione del toolkit più recente o sull'aggiornamento all'ultima versione, visita http://aws.amazon.com/eclipse. Le attività seguenti mostrano in dettaglio come creare e testare i codici di esempio Java forniti in questa sezione.

1

Crea un profilo credenziali predefinito per le credenziali AWS, come descritto nell'argomento AWS SDK for Java dal titolo Fornire credenziali AWS in Amazon SDK per Java.

2

Crea un nuovo Progetto Java AWS in Eclipse. Il progetto è pre-configurato con l'AWS SDK for Java.

3

Copiare il codice dalla sezione che si sta leggendo nel progetto.

4

Aggiornare il codice con i dati eventualmente richiesti. Ad esempio, per il caricamento di un file, indicare il percorso del file e il nome del bucket.

5

Esegui il codice. Verificare l'avvenuta creazione dell'oggetto utilizzando la AWS Management Console. Per ulteriori informazioni sulla AWS Management Console, visita il sito http://aws.amazon.com/console/.

Impostazione dell'endpoint

Per impostazione predefinita, il kit AWS SDK for Java utilizza l'endpoint https://glacier.us-east-1.amazonaws.com. Puoi impostare l'endpoint in modo esplicito come illustrato nei frammenti di codice Java in questa sezione.

Il frammento seguente mostra come impostare l'endpoint sulla regione Stati Uniti occidentali (Oregon) (us-west-2) nell'API di basso livello.

client = new AmazonGlacierClient(credentials); client.setEndpoint("glacier.us-west-2.amazonaws.com");

Il frammento seguente mostra come impostare l'endpoint sulla regione Stati Uniti occidentali (Oregon) nell'API di alto livello.

glacierClient = new AmazonGlacierClient(credentials); sqsClient = new AmazonSQSClient(credentials); snsClient = new AmazonSNSClient(credentials); glacierClient.setEndpoint("glacier.us-west-2.amazonaws.com"); sqsClient.setEndpoint("sqs.us-west-2.amazonaws.com"); snsClient.setEndpoint("sns.us-west-2.amazonaws.com"); ArchiveTransferManager atm = new ArchiveTransferManager(glacierClient, sqsClient, snsClient);

Per un elenco delle regioni AWS e degli endpoint supportati, consulta Accesso ad Amazon S3 Glacier.