Amazon S3 上传访问被拒绝

Posted

技术标签:

【中文标题】Amazon S3 上传访问被拒绝【英文标题】:Amazon S3 upload Access Denied 【发布时间】:2016-05-16 18:51:23 【问题描述】:

我多年来一直坚持这一点。我看到其他人也有同样的问题,但我无法解决。

我正在开发一个 android 应用程序,该应用程序从相机拍摄照片,并将其上传到 Amazon S3 上的存储桶中。这是我的代码:

  CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(
                getApplicationContext(),    /* get the context for the application */
                "MY_POOL_ID",    /* Identity Pool ID */
                Regions.US_EAST_1           /* Region for your identity pool--US_EAST_1 or EU_WEST_1*/
        );


        // Create an S3 client
        AmazonS3 s3 = new AmazonS3Client(credentialsProvider);

        s3.setRegion(Region.getRegion(Regions.US_EAST_1));

        TransferUtility transferUtility = new TransferUtility(s3, getApplicationContext());

        TransferObserver observer = transferUtility.upload(
                MY_BUCKET,     /* The bucket to upload to */
                OBJECT_KEY,    /* The key for the uploaded object */
                f        /* The file where the data to upload exists */
        );

我创建了一个存储桶。文件f,我将相机中的位图转换为文件。我的泳池 ID 有效,如果我更改它,我会收到错误 pool not found;与桶相同。但是,每次我尝试上传时都会收到此错误:

上传失败:11 由于拒绝访问(服务:Amazon S3;状态 代码:403;错误代码:拒绝访问;请求 ID:FD1B30F)

我是 Amazon S3 的初学者,我一次又一次地按照他们的指示进行操作,但我无法解决这个问题。

我在清单中有这个:

<service


android:name="com.amazonaws.mobileconnectors.s3.transferutility.TransferService"
        android:enabled="true" />

以及正确的权限。

我需要做什么来纠正这个问题?

【问题讨论】:

完整的错误信息是什么? 也许你想试试这里的例子:***.com/questions/27096717/… 【参考方案1】:

检查您的存储桶权限,尝试完全打开它,看看您是否能够通过 Android 的 SDK 访问它。

查看 AWS 提供的策略生成器来帮助您:

http://awspolicygen.s3.amazonaws.com/policygen.html

【讨论】:

我试过这个。制定了允许任何人读写的策略,但仍然不起作用。【参考方案2】:

我的问题的答案是,当我在我的设备 Nexus 5 上测试我的应用程序时发生了这个问题。当我使用模拟器 (Genymotion) 时,它可以工作。但是为什么它不能在我不知道的真实设备上工作。

【讨论】:

这绝对不是答案。 它可能不是一个完整的答案,但我认为它很好地提供了寻找答案的地方。如果您能提供更多帮助,请告诉我。 也许你应该把它合并到你的问题中,并说你可以在模拟器下做到这一点。但是,细节仍然太少。

以上是关于Amazon S3 上传访问被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

Amazon Cloudfront 签名 URL 访问被拒绝问题

AWS Lambda - 访问被拒绝错误 - GetObject

Rails:回形针上传时 AWS S3 访问被拒绝错误

尝试将对象放入 s3 时访问被拒绝

标准角色的 Elastic Beanstalk S3 权限:文件访问权限仍然被拒绝

标准角色的 Elastic Beanstalk S3 权限:文件访问权限仍然被拒绝