HEADER_lecciones_de_software

Configurar AWS SDK para Java

por Jhoan Steven Delgado, el 28 de junio de 2021

Configurar AWS SDK para Java

En esta Lección aprenderemos a configurar el SDK de AWS para Java. Además, realizaremos un ejemplo práctico implementando S3.

Antes de iniciar, verifica nuestra Lección Configurando AWS CLI y IAM profile, donde también encontrarás los perrequisitos que necesitas.  También puedes ver la Lección Cómo configurar el SDK de AWS para Nodejs

Configurar AWS SDK para Java 1

2. Ingresamos un nombre a nuestro proyecto, (en este caso S3Example) y hacemos click en next, luego en finish.

3. Si aparece una ventana requiriendo que creemos un módulo java, le damos click en don’t create.

Configurar AWS SDK para Java 2

4. Ahora que ya tenemos creado nuestro proyecto Java, sólo falta convertirlo a un proyecto Java con Maven para realizar la gestión de dependencias del SDK de AWS. Hacemos click derecho sobre la carpeta del proyecto general (en este caso S3Example), seleccionamos configure, y luego hacemos click en convert to Maven Project.

Configurar AWS SDK para Java 3

5. Nos aparecerá una ventana sobre la configuración del POM, dejamos todo de forma predeterminada y hacemos click en finish.

Configurar AWS SDK para Java 4

6. Nos dirigimos al archivo nuevo POM.xml (que es donde gestionaremos nuestras dependecias con Maven) para ingresar las dependencia de AWS SDK. Luego del cierre de Build, copiamos el código que encontramos a continuación:

Configurar AWS SDK para Java 5

Código módulo a módulo (Solo S3):

<dependencyManagement>
                           <dependencies>
                                   <dependency>
                                           <groupId>com.amazonaws</groupId>
                                           <artifactId>aws-java-sdk-bom</artifactId>
                                           <version>1.11.814</version>
                                            <type>pom</type>
                                            <scope>import</scope>
                                   </dependency>
                           </dependencies>
       </dependencyManagement>
       <dependencies>
                     <!--

https://mvnrepository.com/artifact/software.amazon.awssdk/s3 -->
                     <dependency>
                              <groupId>com.amazonaws</groupId>
                               <artifactId>aws-java-sdk-s3</artifactId>
                    </dependency>
</dependencies>
<properties>
                        <maven.compiler.source>1.8</maven.compiler.source>
                        <maven.compiler.target>1.8</maven.compiler.target>
      </properties>

 

*Puedes revisar la última versión del aws-java-sdk-bom aquí. También puedes descargar otros módulos además del S3, tales como:

* Se recomienda módulo a módulo ya que es más práctico descargar solo los módulos que se utilizarán en vez de todo el SDK.

Configurar AWS SDK para Java 6

Opcionalmente, si solo quieres importar todo el SDK de AWS para java, lo puedes hacer copiando el siguiente código:

<dependencies>
               <dependency>
                        <groupId>com.amazonaws</groupId>
                         <artifactId>aws-java-sdk</artifactId>
                        <version>1.11.327</version>
  </dependency>
</dependencies>

 

7. Una vez hecho esto, procedemos a actualizar nuestro proyecto para que através del POM.xml Maven descargue las dependencias. Hacemos click derecho en la carpeta principal del proyecto (En este caso S3Example), seleccionamos Maven, luego hacemos click en Update project.

Configurar AWS SDK para Java 7

8. Verifiquemos que la casilla Force Update se encuentre seleccionada y luego hacemos click en OK

Configurar AWS SDK para Java 8

Ejemplo práctico utilizando S3

A continuación realizaremos un corto y práctico ejemplo utilizando el SDK de AWS con el servicio S3. Primero, debemos crear una clase:

1. Haz click derecho sobre la carpeta src, y luego selecciona new y luego hacemos click en Class.

Configurar AWS SDK para Java utilizando S3

2. Asignamos un nombre a la clase y hacemos click en Finish.

Configurar AWS SDK para Java utilizando S3 (2)

3. Finalmente, copiamos y pegamos el siguiente código en la clase que acabamos de crear:

import com.amazonaws.AmazonServiceException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.AmazonS3Exception;
import com.amazonaws.services.s3.model.Bucket;
import com.amazonaws.services.s3.model.ObjectListing;
import com.amazonaws.services.s3.model.S3ObjectSummary;
import java.io.File;
import java.util.List;

public class S3Example {

    private static final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion(Regions.US_EAST_1)
            .withCredentials(new ProfileCredentialsProvider("dev"))
            .build();

    public static void main(String[] args) {

        //Metodo a correr

    }

    public static void createBucket(String bucketName) {

        try {
            s3.createBucket(bucketName);

        } catch (AmazonS3Exception e) {
            System.err.println(e.getErrorMessage());
        }

    }

    public static void listBuckets() {

        List<Bucket> buckets = s3.listBuckets();
        System.out.println("Tus buckets son:");
        for (Bucket b : buckets) {

            System.out.println("* " + b.getName());
        }

    }

    public static void deleteBucket(String bucketName) {

        try {
            System.out.println(" OK, bucket ready to delete!");
            s3.deleteBucket(bucketName);
        } catch (AmazonServiceException e) {
            System.err.println(e.getErrorMessage());
        }
    }

    public static void uploadFile(String bucketName) {

        try {
            s3.putObject(bucketName, "hello.txt", new File("./hello.txt"));
        } catch (AmazonServiceException e) {
            System.err.println(e.getErrorMessage());
        }

    }

    public static void listAllFiles(String bucketName) {

        ObjectListing ol = s3.listObjects(bucketName);
        List<S3ObjectSummary> objects = ol.getObjectSummaries();
        for (S3ObjectSummary os : objects) {
            System.out.println("* " + os.getKey());
        }
    }

    public static void deleteFile(String bucketName, String file) {

        try {
            s3.deleteObject(bucketName, file);
        } catch (AmazonServiceException e) {
            System.err.println(e.getErrorMessage());
        }

    }

}

 

Para más ejemplos con otros servicios puedes visitar: https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/prog-services.html

Nueva llamada a la acción

Temas:Desarrollo de Software

Lecciones Pragma

Lecciones en Academia Pragma

Aquí encontrarás tutoriales técnicos para que apliques en temas de desarrollo de software, cloud, calidad en software y aplicaciones móviles. 

También puedes visitar nuestro Blog con contenido actual sobre Transformación Digital, Marketing, Conocimiento de Usuario y más. 

Blog

Suscríbete a la academia

Descarga la Guía para trabajar con ambientes IBM Websphere Portal