Javascript S3预签名URL的格式
我试图在JavaScript代码中创建一个S3预签名URL,使用:Javascript S3预签名URL的格式,javascript,amazon-web-services,amazon-s3,Javascript,Amazon Web Services,Amazon S3,我试图在JavaScript代码中创建一个S3预签名URL,使用: var params = {Bucket: 'myBucketName', Key: 'key', Expires: 60}; var url = s3.getSignedUrl('getObject', params); console.log('The URL is ', url); 执行后,我的控制台日志显示: 网址是 但我认为它应该显示: 网址是 为什么要将S3 bucket名称放在URL中的“S3.amazonaws
var params = {Bucket: 'myBucketName', Key: 'key', Expires: 60};
var url = s3.getSignedUrl('getObject', params);
console.log('The URL is ', url);
执行后,我的控制台日志显示:
网址是
但我认为它应该显示:
网址是
为什么要将S3 bucket名称放在URL中的“S3.amazonaws.com”之前
在过去,使用这种方法效果很好。AWS SDK是否已更改?这是AWS s3 bucket的signedURL格式。当AWS为
getObject
或putObject
组成签名用户时,此格式保持不变
AWS签名url的格式为:
https://
bucketName
已提供。这是Bucket
.s3.amazonaws.com/
文件名
已提供。这是键
一定要遵守这些。他没有问任何有关CloudFront的问题。他询问如何像大多数人一样直接从S3存储桶访问文件。CloudFront不需要使用S3,它们是不同的服务,尽管它们可以结合使用。您的bucket可以通过任何一种方式访问。这会导致问题吗?请注意,这是一个虚拟托管样式的URL,而不是路径样式的URL。两者均有效。两者仅对us-east-1中的桶有效。路径样式必须引用区域端点,否则,例如
https://s3.us-east-3.amazonaws.com/example-bucket
适用于us-east-2。您遇到的实际问题是什么?请不要将您的评论作为答案发布。您可以在问题和发布的答案下方找到评论部分。请以后使用评论部分。