我正在尝试将图片上传到我的AWS桶 我创建了一个新用户 授予他fulls3控制权
AWSCredentials credentials = new BasicAWSCredentials(MY_ACCESS_KEY_ID, MY_SECRET_KEY);
AmazonS3 s3client = new AmazonS3Client(credentials);
PutObjectResult objectRequest = s3client.putObject(new PutObjectRequest(GlobalConstant.bucketName+"/testing", f.getName().toString(),
f));
但上传时我收到以下错误:
05-27 07:09:47.219:W / System.err(20594): com.amazonaws.services.s3.model.AmazonS3Exception:拒绝访问 (服务:Amazon S3;状态代码:403;错误代码:AccessDenied; 请求ID:),S3扩展请求ID:+++ / =
答案 0 :(得分:0)
运行aws configure
命令并填写所有配置详细信息。
在管理控制台中,选择存储桶并选择属性选项卡。单击添加更多权限。 Grantee从下拉列表中选择用户名,检查列表,上传/删除。出于测试目的,您可以为Everyone设置权限并检查所有选项。
答案 1 :(得分:0)
您确定您创建的用户(IAM我假设?)与您使用的凭据相同吗?
您可能希望使用S3 Transfer Manager结帐,因为它可以更轻松地下载/上传到S3,并且您可以暂停/恢复下载。
我强烈建议您为移动应用程序使用临时凭证,因为嵌入凭据永远不会安全。
都有一个入门指南答案 2 :(得分:0)
请检查 ~/.aws 目录下的凭据文件。 请确保您使用的 iam 用户有权使用 s3 存储桶,并确保其附加了 PutObject 策略。
一旦 iam 用户将“PutObject”策略附加到 iam 用户。您应该能够正确运行它。