亚马逊s3访问被拒绝

时间:2015-05-27 09:22:26

标签: android amazon-web-services amazon-s3

我正在尝试将图片上传到我的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:+++ / =

3 个答案:

答案 0 :(得分:0)

运行aws configure命令并填写所有配置详细信息。 在管理控制台中,选择存储桶并选择属性选项卡。单击添加更多权限。 Grantee从下拉列表中选择用户名,检查列表,上传/删除。出于测试目的,您可以为Everyone设置权限并检查所有选项。

答案 1 :(得分:0)

您确定您创建的用户(IAM我假设?)与您使用的凭据相同吗?

您可能希望使用S3 Transfer Manager结帐,因为它可以更轻松地下载/上传到S3,并且您可以暂停/恢复下载。

我强烈建议您为移动应用程序使用临时凭证,因为嵌入凭据永远不会安全。

这两个http://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/getting-started-store-retrieve-s3.html

都有一个入门指南

答案 2 :(得分:0)

请检查 ~/.aws 目录下的凭据文件。 请确保您使用的 iam 用户有权使用 s3 存储桶,并确保其附加了 PutObject 策略。

一旦 iam 用户将“PutObject”策略附加到 iam 用户。您应该能够正确运行它。