Questa pagina è riservata ai clienti esistenti del servizio S3 Glacier che utilizzano Vaults e l'originale del 2012. REST API
Se stai cercando soluzioni di archiviazione, ti consigliamo di utilizzare le classi di storage S3 Glacier in Amazon S3, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval e S3 Glacier Deep Archive. Per ulteriori informazioni su queste opzioni di storage, consulta le classi di storage S3 Glacier e lo storage dei dati a lungo termine con le classi
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à.
Caricamento di un archivio in un'unica operazione mediante il kit AWS SDK for Java
Le API di alto e basso livello fornite dall'Amazon SDK per Java forniscono un metodo per caricare un archivio.
Argomenti
Caricamento di un archivio mediante l'API di alto livello del kit AWS SDK for Java
La classe ArchiveTransferManager
dell'API di alto livello fornisce il metodo upload
che puoi utilizzare per caricare un archivio in un vault.
Nota
Il metodo upload
ti consente di caricare archivi di qualsiasi dimensione. A seconda della dimensione dell'archivio, determina se questo deve essere caricato in un'unica operazione oppure mediante un caricamento in più parti con l'API corrispondente.
Esempio: caricamento di un archivio mediante l'API di alto livello del kit AWS SDK for Java
L'esempio di codice Java seguente carica un archivio in un vault (examplevault
) nella regione Stati Uniti occidentali (Oregon) (us-west-2
). Per un elenco delle regioni AWS e degli endpoint supportati, consulta Accesso ad Amazon S3 Glacier.
Per istruzioni dettagliate su come eseguire questo esempio, consulta Esecuzione di esempi Java per Amazon S3 Glacier mediante Eclipse. Devi aggiornare il codice con il nome del vault in cui intendi effettuare il caricamento e il nome del file da caricare come indicato.
import java.io.File; import java.io.IOException; import java.util.Date; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.services.glacier.AmazonGlacierClient; import com.amazonaws.services.glacier.transfer.ArchiveTransferManager; import com.amazonaws.services.glacier.transfer.UploadResult; public class ArchiveUploadHighLevel { public static String vaultName = "*** provide vault name ***"; public static String archiveToUpload = "*** provide name of file to upload ***"; public static AmazonGlacierClient client; public static void main(String[] args) throws IOException { ProfileCredentialsProvider credentials = new ProfileCredentialsProvider(); client = new AmazonGlacierClient(credentials); client.setEndpoint("https://glacier.us-west-2.amazonaws.com/"); try { ArchiveTransferManager atm = new ArchiveTransferManager(client, credentials); UploadResult result = atm.upload(vaultName, "my archive " + (new Date()), new File(archiveToUpload)); System.out.println("Archive ID: " + result.getArchiveId()); } catch (Exception e) { System.err.println(e); } } }
Caricamento di un archivio in un'unica operazione mediante l'API di basso livello del kit AWS SDK for Java
L'interfaccia API di basso livello fornisce metodi per tutte le operazioni di archivio. Di seguito è riportata la procedura per caricare un archivio mediante il kit AWS SDK for Java.
-
Crea un'istanza della classe
AmazonGlacierClient
(client).Devi specificare la regione AWS in cui intendi caricare l'archivio. Tutte le operazioni che esegui utilizzando questo client si applicano a quella regione AWS.
-
Fornisci informazioni sulla richiesta creando un'istanza della classe
UploadArchiveRequest
.Oltre ai dati da caricare, devi fornire un checksum (struttura hash SHA-256) del payload, il nome del vault, la lunghezza del contenuto dei dati e l'ID del tuo account.
Se non specifichi un ID account, viene utilizzato l'ID account associato alle credenziali che hai fornito per firmare la richiesta. Per ulteriori informazioni, consulta Utilizzo di AWS SDK for Java con Amazon S3 Glacier.
-
Eseguire il metodo
uploadArchive
fornendo l'oggetto della richiesta come parametro.In risposta, Amazon S3 Glacier (S3 Glacier) restituisce l'ID archivio appena caricato.
Il seguente frammento di codice Java illustra la procedura precedente.
AmazonGlacierClient client; UploadArchiveRequest request = new UploadArchiveRequest() .withVaultName("*** provide vault name ***") .withChecksum(checksum) .withBody(new ByteArrayInputStream(body)) .withContentLength((long)body.length); UploadArchiveResult uploadArchiveResult = client.uploadArchive(request); System.out.println("Location (includes ArchiveID): " + uploadArchiveResult.getLocation());
Esempio: caricamento di un archivio in un'unica operazione mediante l'API di basso livello del kit AWS SDK for Java
L'esempio di codice Java seguente utilizza il kit AWS SDK for Java per caricare un archivio in un vault (examplevault
). Per istruzioni dettagliate su come eseguire questo esempio, consulta Esecuzione di esempi Java per Amazon S3 Glacier mediante Eclipse. Devi aggiornare il codice con il nome del vault in cui intendi effettuare il caricamento e il nome del file da caricare come indicato.
import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.services.glacier.AmazonGlacierClient; import com.amazonaws.services.glacier.TreeHashGenerator; import com.amazonaws.services.glacier.model.UploadArchiveRequest; import com.amazonaws.services.glacier.model.UploadArchiveResult; public class ArchiveUploadLowLevel { public static String vaultName = "*** provide vault name ****"; public static String archiveFilePath = "*** provide to file upload ****"; public static AmazonGlacierClient client; public static void main(String[] args) throws IOException { ProfileCredentialsProvider credentials = new ProfileCredentialsProvider(); client = new AmazonGlacierClient(credentials); client.setEndpoint("https://glacier.us-east-1.amazonaws.com/"); try { // First open file and read. File file = new File(archiveFilePath); InputStream is = new FileInputStream(file); byte[] body = new byte[(int) file.length()]; is.read(body); // Send request. UploadArchiveRequest request = new UploadArchiveRequest() .withVaultName(vaultName) .withChecksum(TreeHashGenerator.calculateTreeHash(new File(archiveFilePath))) .withBody(new ByteArrayInputStream(body)) .withContentLength((long)body.length); UploadArchiveResult uploadArchiveResult = client.uploadArchive(request); System.out.println("ArchiveID: " + uploadArchiveResult.getArchiveId()); } catch (Exception e) { System.err.println("Archive not uploaded."); System.err.println(e); } } }