将文件上传到Amazon S3时出现拒绝访问错误

时间:2019-05-24 20:29:14

标签: amazon-web-services spring-boot aws-java-sdk

获得拒绝访问错误:

  

拒绝访问(服务:亚马逊S3;状态码:403;错误代码:存取遭拒;请求ID:AEB65D41FEB958C7; S3扩展请求ID:jhCxO / Mv4MTxMRjvkM3bHVJ3dhb7TBeK0k7qHFUY3Q / RFhF591mRLeIzPXUEF0EdtgX9FNJXSq4 =),S3扩展请求ID:jhCxO / Mv4MTxMRjvkM3bHVJ3dhb7TBeK0k7qHFUY3Q / RFhF591mRLeIzPXUEF0EdtgX9FNJXSq4 =文件上传异常:访问被拒绝(服务:Amazon S3;状态代码:403;错误代码:AccessDenied;请求ID:AEB65D41FEB958C7;

尝试上传文件时。我的代码是:

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());

    }

}

1 个答案:

答案 0 :(得分:1)

错误表明您无权访问S3存储桶。

正确的解决方案:

转到policy generator并生成一个,它是定义谁可以访问此资源的配置。

将该策略粘贴到桶设置> 权限> 桶策略并保存。

快速而肮脏的解决方案:

在以下位置选中“列表”和“写入”复选框:存储桶设置> 权限> 公共访问权限> 所有人 >。

转到:时段设置> 权限> 时段政策