我们有一个AWS账户,我们在其中使用S3存储桶来存储加密的图像(jpg)。此存储桶是“公开”的,虽然我们能够将所有图像成功上传到该存储桶,但在我们已上传/下载的约200-300张图像中,有1张似乎总是无法下载,并出现以下错误:
错误下载:可选(“ images / xxxxxxx / xxxxxxx.jpg”)错误:错误Domain = com.amazonaws.AWSServiceErrorDomain代码= 11“(null)” UserInfo = {HostId = xxxxxxx / xxxxxxx =,消息=访问被拒绝,代码= AccessDenied,RequestId = xxxxxxx}
此图像(下载失败)始终使用与所有其他图像相同的功能和参数上载,并以相同的方式下载。关于此图片的唯一独特之处在于,它是我们的应用程序(Android和iOS)中的个人资料照片,仅在其他地方使用。与成功下载的其他图片相比,此图片没有其他区别。
这个问题使我们对可能做错的事情感到困惑,如果有的话。我是AWS初学者。
答案 0 :(得分:0)
您可能正在将图像上传到只读的存储桶中,只有管理员可以访问它。在提出要求之前将其添加:
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>