[英]AWS S3 GET returns status code 403
我将node aws-sdk
与已通过以下策略设置的用户一起使用:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1458935963000",
"Effect": "Allow",
"Action": [
"s3:DeleteObject",
"s3:GetObject",
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::mybucket1/*"
]
}
]
}
值区本身没有附加任何明确的策略。 Permissions
设置如下:
以下产生403
:
<video src="https://s3-us-west-2.amazonaws.com/mybucket1/default21.mp4">
</video>
存储桶名称已更改,但与视频一起存在于S3上。 任何帮助都感激不尽。
更新1即使使用S3帐户的root/owner
启动了aws-sdk
也能获得相同的结果。
您的<video>
标签未使用nodejs代码已设置的身份验证机制。
视频标签会加载到浏览器中,而浏览器对AWS开发工具包或节点服务器一无所知。
您需要为视频标签使用预先签名的URL 。
生成服务器上的网址,然后在视频代码中使用该网址。 例如,如果您使用Express:
router.get("/whatever", function(req, res, next){
var params = {Bucket: 'mybucket', Key: 'default21.mp4'};
var url = s3.getSignedUrl('getObject', params);
res.render("some/view", {
videoUrl: url
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.