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

访问控制允许aws javascript sdk getSignedUrl操作上的源代码?,javascript,amazon-web-services,amazon-s3,amazon-javascript-sdk,Javascript,Amazon Web Services,Amazon S3,Amazon Javascript Sdk,是否可以在S3对象的getSignedUrl操作上设置访问控制允许原点? 我一直在寻找aws文档中可用参数的列表,但不清楚 更新: 假设在名为“test bucket”的bucket中有一个对象“test file.jpg”。桶上没有设置CORS策略。 由getSignedUrl方法创建的已签名URL在浏览器中引发“不允许访问控制允许原始标头存在”错误 var s3 = new aws.S3({'signatureVersion': 'v4'}); var options = { Buc

是否可以在S3对象的getSignedUrl操作上设置访问控制允许原点? 我一直在寻找aws文档中可用参数的列表,但不清楚

更新: 假设在名为“test bucket”的bucket中有一个对象“test file.jpg”。桶上没有设置CORS策略。 由getSignedUrl方法创建的已签名URL在浏览器中引发“不允许访问控制允许原始标头存在”错误

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

在上面的函数调用中是否有设置访问控制允许原点的选项:?

没有方法。您需要在bucket上配置CORS

有一些选项,如
ResponseContentDisposition
,当使用预签名的URL获取对象时,会导致S3向响应中注入额外的定制响应头。CORS没有这样的选择


可以使用CloudFront设计一个听起来有些复杂(但似乎有效)的解决方案,Lambda@Edge、源访问标识和CloudFront预签名URL。Lambda响应触发器会将CORS响应头添加到S3响应中,OAI会在通过CloudFront签名URL验证后在S3授权该响应,Lambda请求触发器会生成浏览器可能需要的任何飞行前响应。

调用
getSignedUrl()
不会发出任何API请求。签名在本地完成--无论SDK在哪里运行。。。所以你问的问题不太清楚。@Michael sqlbot我已经更新了这个问题,让它更清楚。希望有帮助。我想你是对的。您还可以给我指一下文档,其中提到了getSignedUrl函数调用的所有可用选项,如“ResponseContentDisposition”?
getSignedUrl()
根据您要签名的操作接受选项,因此,有关这一点,请参阅