繁体   English   中英

AWS S3 GET返回状态码403

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM