Trabajar con el depósito de Amazon S3: después de cargar el archivo en el depósito, podemos obtener la URL del archivo cargado utilizando el siguiente código:
String fileDownloadUrl = AmzonS3Client.getUrl(bucketName, fileName);En Result, dará una URL como, por ejemplo: bucket.s3.amazonaws.com/key pero quiero s3.amazonaws.com/bucket/key. Entonces, ¿alguien puede ayudarme, cómo puedo resolver esto en Java?
De manera predeterminada, pathstyleaccess es falso, por lo que su archivo cargado debe ser bucket.s3.amazonaws.com/key, pero cuando agrega explícitamente clientOptions -- pathStyleAccess a true, generará una URL como s3.amazonaws.com/bucket/key. Encuentre el fragmento de código a continuación
S3ClientOptions clientOptions = new S3ClientOptions(); clientOptions.setPathStyleAccess(true);
Y establezca este clientOptions en Amazons3client.
Otra solución:
Cree un objeto AmazonS3Client mediante AmazonS3ClientBuilder con enablePathStyleAccess() .
AmazonS3 client = AmazonS3ClientBuilder.standard() .enablePathStyleAccess() .withRegion(regionName) .withCredentials(new AWSStaticCredentialsProvider(credentials)) .build();