Paso 1: obtenga lo último aws-java-sdk
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.11.660</version>
</dependency>
Paso 2: las importaciones correctas
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.regions.Region;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.ListObjectsRequest;
import com.amazonaws.services.s3.model.ObjectListing;
Si está seguro de que el depósito existe, Specified key does not exists error
significaría que el nombre del depósito no está escrito correctamente (contiene una barra diagonal o caracteres especiales). Consulte la documentación para conocer la convención de nomenclatura.
El documento cita:
Si el objeto solicitado está disponible en el depósito y los usuarios siguen recibiendo el error 404 NoSuchKey de Amazon S3, verifique lo siguiente:
Confirme que la solicitud coincide exactamente con el nombre del objeto, incluida la capitalización del nombre del objeto. Las solicitudes de objetos S3 distinguen entre mayúsculas y minúsculas. Por ejemplo, si un objeto se llama myimage.jpg, pero se solicita Myimage.jpg, el solicitante recibe un error 404 NoSuchKey. Confirme que la ruta solicitada coincide con la ruta al objeto. Por ejemplo, si la ruta a un objeto es awsexamplebucket / Downloads / February / Images / image.jpg, pero la ruta solicitada es awsexamplebucket / Downloads / February / image.jpg, el solicitante recibe un error 404 NoSuchKey. Si la ruta al objeto contiene espacios, asegúrese de que la solicitud utilice la sintaxis correcta para reconocer la ruta. Por ejemplo, si está utilizando la AWS CLI para descargar un objeto en su máquina Windows, debe usar comillas alrededor de la ruta del objeto, similar a: aws s3 cp "s3: // awsexamplebucket / Trabajo de copia de respaldo 4 / 3T000000.vbk". Opcionalmente, puede habilitar el registro de acceso al servidor para revisar los registros de solicitudes con más detalle en busca de problemas que puedan estar causando el error 404.
AWSCredentials credentials = new BasicAWSCredentials(AWS_ACCESS_KEY_ID, AWS_SECRET_KEY);
AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withRegion(Regions.US_EAST_1).build();
ObjectListing objects = s3Client.listObjects("bigdataanalytics");
System.out.println(objects.getObjectSummaries());