【问题标题】:Getting access denied error on uploading the file to Amazon S3将文件上传到 Amazon S3 时出现访问被拒绝错误
【发布时间】:2019-10-11 10:38:07
【问题描述】:

获取拒绝访问错误:

拒绝访问(服务:亚马逊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());

    }

}

【问题讨论】:

  • 您收到Access Denied 错误。是什么让您认为应该允许您的代码 PutObject 进入该存储桶?哪些政策与所使用的 AWS 凭证相关联?

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


【解决方案1】:

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

正确的解决方案:

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

将该政策粘贴到Bucket settings > permissions > Bucket Policy并保存。

快速而肮脏的解决方案:

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

转到:存储桶设置 > 权限 > 存储桶政策

【讨论】:

    猜你喜欢
    • 2022-08-02
    • 2019-09-18
    • 1970-01-01
    • 2012-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-03
    • 2021-09-09
    相关资源
    最近更新 更多