【问题标题】:Access denied unable to download image from aws s3访问被拒绝无法从 aws s3 下载图像
【发布时间】:2019-05-09 04:48:48
【问题描述】:

我们有一个 AWS 账户,我们在其中使用 S3 存储桶来存储加密图像 (jpgs)。此存储桶是公开的,虽然我们能够成功地将所有图片上传到此存储桶,但我们上传/下载的大约 200-300 张图片中有 1 张似乎总是无法下载并出现以下错误:

下载错误:可选(“images/xxxxxxx/xxxxxxx.jpg”)错误:错误域=com.amazonaws.AWSServiceErrorDomain Code=11 "(null)" UserInfo={HostId=xxxxxxx/xxxxxxx=, Message=Access Denied , Code=AccessDenied, RequestId=xxxxxxx}

此图像(下载失败)始终使用与所有其他图像相同的函数和参数上传,并以相同的方式下载。这张图片的唯一独特之处在于它是我们应用程序(Android 和 iOS)中的个人资料照片,只是在不同的地方使用。此图像与其他成功下载的图像没有什么不同。

这个问题让我们对我们可能做错了什么感到困惑,如果有的话。我是 AWS 初学者。

【问题讨论】:

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


【解决方案1】:

您可能正在将图像上传到只读存储桶并且只有管理员可以访问它,在这种情况下;在发出请求之前添加:

s3PutObjectRequest.cannedACL = S3CannedACL.authenticatedRead()

这将授予您。上传文件到私有存储桶的权限

访问被拒绝错误的原因有很多,例如,您可能忘记了这一点,请将其添加到您的 plist 中并为其提供合适的信息:

<dict>
<key>CredentialsProvider</key>
<dict>
    <key>CognitoIdentity</key>
    <dict>
        <key>Default</key>
        <dict>
            <key>PoolId</key>
            <string>"My poll ID string"</string>
            <key>Region</key>
            <string>"PoolID Resign"</string>
        </dict>
    </dict>
</dict>
<key>S3TransferManager</key>
<dict>
    <key>Default</key>
    <dict>
        <key>Region</key>
        <string>"PoolID Resign"</string>
    </dict>
</dict>

【讨论】:

    猜你喜欢
    • 2022-01-27
    • 1970-01-01
    • 2021-12-26
    • 2020-09-30
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    • 2021-06-11
    相关资源
    最近更新 更多