最近,需要從AWS S3上下載渲染後的圖片,遇到了如下問題:
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>9695588FE619D9CA</RequestId>
<HostId>
+Kce7U7E7J1gdbrZVjgsoasJauHiIFxwVqRkLXPsg0kezaJvzI92U/3Ao2N1XwiqNdv1UEhSBTo=
</HostId>
</Error>
原因是上傳到S3的文件默認是私有的。
如果通過AWS控制檯進行下載,可以選中該文件,選擇“公開”,之後就有下載權限了。如下所示:
如果想要默認情況下公開某存儲桶中的部分或全部內容,需要設置存儲桶策略。如下所示:
https://awspolicygen.s3.cn-north-1.amazonaws.com.cn/policygen.html
點擊上述鏈接,進入如下界面進行相關設置:
設置完成後,點擊會生成json格式的存儲桶策略:
{
"Id": "Policy1512913721966",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1512913719687",
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws-cn:s3:::bucket-my",
"Principal": "*"
}
]
}
接着打開AWS S3控制檯,在待設置的存儲桶“權限”中選擇“存儲桶策略”,將上面json字段複製到編輯器中保存即可。