将文件上传到 Amazon S3 时出现访问被拒绝错误 [英] Getting access denied error on uploading the file to Amazon S3
问题描述
访问被拒绝错误:
拒绝访问(服务:亚马逊S3;状态码:403;错误代码:存取遭拒;请求ID:AEB65D41FEB958C7; S3扩展请求ID:jhCxO/Mv4MTxMRjvkM3bHVJ3dhb7TBeK0k7qHFUY3Q/RFhF591mRLeIzPXUEF0EdtgX9FNJXSq4 =),S3扩展请求ID:jhCxO/Mv4MTxMRjvkM3bHVJ3dhb7TBeK0k7qHFUY3Q/RFhF591mRLeIzPXUEF0EdtgX9FNJXSq4 =文件上传异常:访问被拒绝(服务:Amazon S3;状态代码:403;错误代码:AccessDenied;请求 ID:AEB65D41FEB958C7;
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());
}
}
推荐答案
错误表明您无权访问 S3 Bucket.
Error indicates that you don't have an access to S3 Bucket.
正确的解决方案:
转到 policy generator 并生成一个,这是一个定义谁拥有的配置访问此资源.
Go to policy generator and generate one, it's a configuration that defines who has access to this resource.
将该策略粘贴到存储桶设置 > 权限 > 存储桶策略并保存.
Paste that policy to Bucket settings > permissions > Bucket Policy and save.
快速&肮脏的解决方案:
在以下位置选中列表"和写入"复选框:存储桶设置 > 权限 > 公共访问 > 所有人.
Check "list" and "write" checkboxes in: Bucket settings > Permissions > Public Access > Everyone.
转到:存储分区设置 > 权限 > 存储分区政策
这篇关于将文件上传到 Amazon S3 时出现访问被拒绝错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!