gpt4 book ai didi

javascript - aws javascript sdk getSignedUrl 操作上的访问控制允许来源?

转载 作者:行者123 更新时间:2023-11-30 14:41:34 25 4
gpt4 key购买 nike

是否可以在 S3 对象的 getSignedUrl 操作上设置 access-control-allow-origin?我一直在寻找 aws 文档中的可用参数列表,但不清楚。

更新:假设我在名为“test-bucket”的存储桶中有一个对象“test-file.jpg”。存储桶上没有设置 CORS 策略。由 getSignedUrl 方法创建的签名 URL 在浏览器中抛出“不存在访问控制允许来源 header ”不允许的错误。

var s3 = new aws.S3({'signatureVersion': 'v4'});
var options = {
Bucket:"test-bucket",
Key:"test-file.jpg",
Expires:120
}
var signedUrl = s3.getSignedUrl('getObject', options);

在上面的函数调用中是否有设置 access-control-allow-origin : * 的选项?

最佳答案

没有办法做到这一点。您需要在存储桶上配置 CORS。

有一些选项(如 ResponseContentDisposition)会导致 S3 在使用预签名 URL 获取对象时将额外的自定义响应 header 注入(inject)到响应中。 CORS 没有这样的选项。

可以使用 CloudFront、Lambda@Edge、Origin Access Identity 和 CloudFront 预签名 URL 设计一个听起来有点复杂(但看似有效)的解决方法。 Lambda 响应触发器会将 CORS 响应 header 添加到 S3 响应中,在 CloudFront 签名 URL 验证后,OAI 会在 S3 上对其进行授权,而 Lambda 请求触发器会生成浏览器可能需要的任何飞行前响应.

关于javascript - aws javascript sdk getSignedUrl 操作上的访问控制允许来源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49573154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com