example aws amazons3clientbuilder amazons3client java amazon-web-services amazon-s3 aws-sdk deprecated

java - aws - amazons3clientbuilder



AmazonS3Client(credenciales) está en desuso (4)

Debe pasar la información de la región a través de

com.amazonaws.regions.Region object. Use AmazonS3Client(credentials, Region.getRegion(Regions.REPLACE_WITH_YOUR_REGION))

Estoy tratando de leer los archivos disponibles en Amazon S3, ya que la pregunta explica el problema. No pude encontrar una llamada alternativa para el constructor obsoleto.

Aquí está el código:

private String AccessKeyID = "xxxxxxxxxxxxxxxxxxxx"; private String SecretAccessKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; private static String bucketName = "documentcontainer"; private static String keyName = "test"; //private static String uploadFileName = "/PATH TO FILE WHICH WANT TO UPLOAD/abc.txt"; AWSCredentials credentials = new BasicAWSCredentials(AccessKeyID, SecretAccessKey); void downloadfile() throws IOException { // Problem lies here - AmazonS3Client is deprecated AmazonS3 s3client = new AmazonS3Client(credentials); try { System.out.println("Downloading an object..."); S3Object s3object = s3client.getObject(new GetObjectRequest( bucketName, keyName)); System.out.println("Content-Type: " + s3object.getObjectMetadata().getContentType()); InputStream input = s3object.getObjectContent(); BufferedReader reader = new BufferedReader(new InputStreamReader(input)); while (true) { String line = reader.readLine(); if (line == null) break; System.out.println(" " + line); } System.out.println(); } catch (AmazonServiceException ase) { //do something } catch (AmazonClientException ace) { // do something } }

¿Alguna ayuda? Si se necesita más explicación, menciónelo. He comprobado el código de muestra proporcionado en el archivo .zip del SDK, y es lo mismo.


Puede crear un cliente predeterminado S3 de la siguiente manera (con aws-java-sdk-s3-1.11.232):

AmazonS3ClientBuilder.defaultClient();


Puede usar AmazonS3ClientBuilder o AwsClientBuilder como alternativas.

Para S3, lo más simple sería con AmazonS3ClientBuilder,

BasicAWSCredentials creds = new BasicAWSCredentials("access_key", "secret_key"); AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(creds)).build();


Use el código que figura a continuación para crear un cliente S3 sin credenciales:

AmazonS3 s3Client = AmazonS3ClientBuilder.standard().build();

Un ejemplo de uso sería una función lambda que llama a S3.