Working with AmazonS3 bucket - After uploading file to bucket, we can get uploaded file URL using below code :
String fileDownloadUrl = AmzonS3Client.getUrl(bucketName, fileName);
In Result it will give url like i.e : bucket.s3.amazonaws.com/key but I want s3.amazonaws.com/bucket/key. So Can anyone help me how can I solve this in java?
By default pathstyleaccess is false so your uploaded file should be bucket.s3.amazonaws.com/key but when you explicitly add clientOptions -- pathStyleAccess to true then it will generate URL like s3.amazonaws.com/bucket/key. Please find below code snippet
S3ClientOptions clientOptions = new S3ClientOptions(); clientOptions.setPathStyleAccess(true);
And set this clientOptions to Amazons3client.
Another Solution:
Create AmazonS3Client object using AmazonS3ClientBuilder with enablePathStyleAccess().
AmazonS3 client = AmazonS3ClientBuilder.standard()
.enablePathStyleAccess()
.withRegion(regionName)
.withCredentials(new AWSStaticCredentialsProvider(credentials))
.build();