'Getting access denied error on uploading the file to Amazon S3

Getting access denied error:

Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: AEB65D41FEB958C7; S3 Extended Request ID: jhCxO/Mv4MTxMRjvkM3bHVJ3dhb7TBeK0k7qHFUY3Q/RFhF591mRLeIzPXUEF0EdtgX9FNJXSq4=), S3 Extended Request ID: jhCxO/Mv4MTxMRjvkM3bHVJ3dhb7TBeK0k7qHFUY3Q/RFhF591mRLeIzPXUEF0EdtgX9FNJXSq4=File Upload Exception:Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: AEB65D41FEB958C7;

when trying to upload the file. My code is:

private void uploadFile(String fileName, File file) {
    System.out.print("clouldfileservice: putREqeust");
    PutObjectRequest request = new PutObjectRequest(this.bucketName, fileName, file)
            .withCannedAcl(CannedAccessControlList.PublicRead);
    try {
        PutObjectResult result = this.s3Client.putObject(request);
    } catch (Exception e) {
        System.out.print("File Upload Exception:" + e.toString());
        System.out.print("File Upload Exception:" + e.getLocalizedMessage());

    }

}


Solution 1:[1]

Correct solution is to remove withCannedAcl(CannedAccessControlList.PublicRead); from PutObjectRequest object. You are trying to set the optional pre-configured access control policy to use for the new object but your bucket has private access.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 AliakseiK