Esta página es solo para los clientes actuales del servicio S3 Glacier que utilizan Vaults y la API de REST original de 2012.
Si busca soluciones de almacenamiento de archivos, se recomienda que utilice las clases de almacenamiento de S3 Glacier en Amazon S3, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval y S3 Glacier Deep Archive. Para obtener más información sobre estas opciones de almacenamiento, consulte Clases de almacenamiento de S3 Glacier
Uso de AWS SDK for Java con Amazon S3 Glacier
AWS SDK for Java pone a su disposición las API de alto y bajo nivel de Amazon S3 Glacier (S3 Glacier), tal y como se describe en Uso de los SDK de AWS con Amazon S3 Glacier. Para obtener información acerca de cómo descargar AWS SDK for Java, consulte Amazon SDK para Java
nota
AWS SDK for Java proporciona clientes seguros para subprocesos que ofrecen acceso a S3 Glacier. Como práctica recomendada, sus aplicaciones deben crear un cliente y reutilizar el cliente entre subprocesos.
Temas
Uso de la API de bajo nivel
La clase AmazonGlacierClient
de bajo nivel contiene todos los métodos que se asignan a las operaciones subyacentes de REST incluidas en S3 Glacier (Referencia de la API para Amazon S3 Glacier). Al llamar a alguno de estos métodos, debe crear el objeto de solicitud correspondiente y proporcionar un objeto de respuesta en el que el método pueda devolver la respuesta de S3 Glacier a la operación.
Por ejemplo, la clase AmazonGlacierClient
contiene el método createVault
para crear un almacén. Este método se corresponde con la operación de REST Create Vault (consulte Creación de un almacén (almacén PUT)). Para utilizar este método, debe crear instancias del objeto CreateVaultResult
que recibe la respuesta de S3 Glacier, tal y como se muestra en el siguiente fragmento de código 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);
En todos los ejemplos de bajo nivel de la guía se utiliza este patrón.
nota
En el segmento de código anterior, se especifica AccountID
al crear la solicitud. Sin embargo, cuando se utiliza AWS SDK for Java, el AccountId
de la solicitud es opcional, por lo que este valor no se utiliza en ningún ejemplo de bajo nivel de esta guía. El valor AccountId
es el ID de la Cuenta de AWS. Este valor debe coincidir con el ID de la Cuenta de AWS asociada con las credenciales que se utilizaron para firmar la solicitud. Puede especificar el ID de la Cuenta de AWS o, si lo desea, el carácter “-”, en cuyo caso S3 Glacier utiliza el ID de la Cuenta de AWS asociada a las credenciales empleadas para firmar la solicitud. Si especifica el ID de cuenta, no incluya ningún guion en él. Cuando se utiliza AWS SDK for Java, si no se proporciona el ID de cuenta, la biblioteca lo establece en '-'.
Uso de la API de alto nivel
Para simplificar aún más el desarrollo de las aplicaciones, AWS SDK for Java dispone de la clase ArchiveTransferManager
, que ofrece un mayor nivel de abstracción para algunos de los métodos de la API de bajo nivel. Esta clase tiene métodos útiles, como upload
y download
, para las operaciones con archivos.
Por ejemplo, en el siguiente fragmento de código Java, se utiliza el método upload
de alto nivel para cargar un archivo.
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();
Tenga en cuenta que las operaciones que realice se aplicarán a la región de AWS que especificó al crear el objeto ArchiveTransferManager
. Si no especifica ninguna región de AWS, AWS SDK for Java establece us-east-1
como la región predeterminada de AWS.
En todos los ejemplos de alto nivel de esta guía, se utiliza este patrón.
nota
La clase ArchiveTransferManager
de alto nivel puede crearse con una instancia de AmazonGlacierClient
o de AWSCredentials
.
Ejecución de ejemplos de Java para Amazon S3 Glacier con Eclipse
La forma más sencilla de comenzar con los ejemplos de código Java es instalar la última versión de AWS Toolkit for Eclipse. Para obtener más información acerca de la instalación o actualización del último kit de herramientas, vaya a http://aws.amazon.com/eclipse
1 |
Cree un perfil de credenciales predeterminado para sus credenciales de AWS, tal y como se describe en el tema de AWS SDK for Java Proporcionar credenciales de AWS en Amazon SDK para Java. |
2 |
Cree un nuevo proyecto Java de AWS en Eclipse. El proyecto se configura previamente con AWS SDK for Java. |
3 |
Copie el código de la sección que lee en su proyecto. |
4 |
Actualice el código con cualquier dato requerido. Por ejemplo, si carga un archivo, proporcione la ruta del archivo y el nombre del bucket. |
5 |
Ejecute el código. Verifique que el objeto se cree con la AWS Management Console. Para obtener más información acerca de la AWS Management Console, visite http://aws.amazon.com/console/ |
Configuración del punto de enlace
De forma predeterminada, AWS SDK for Java utiliza el punto de enlace https://glacier.us-east-1.amazonaws.com
. Puede configurar el punto de enlace de forma explícita, tal como se ilustra en los siguientes fragmentos de código Java.
En el fragmento siguiente, se muestra cómo establecer el punto de conexión en la región Oeste de EE. UU. (Oregón) (us-west-2
) en la API de bajo nivel.
client = new AmazonGlacierClient(credentials); client.setEndpoint("glacier.us-west-2.amazonaws.com");
En el fragmento siguiente, se muestra cómo establecer el punto de conexión en la región Oeste de EE. UU. (Oregón) en la API de alto nivel.
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);
Para ver una lista de las regiones de AWS y los puntos de conexión admitidos, consulte Acceso a Amazon S3 Glacier.