Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript S3预签名URL的格式_Javascript_Amazon Web Services_Amazon S3 - Fatal编程技术网

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

我试图在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.com”之前


在过去,使用这种方法效果很好。AWS SDK是否已更改?

这是AWS s3 bucket的signedURL格式。当AWS为
getObject
putObject
组成签名用户时,此格式保持不变

AWS签名url的格式为:

  • https://
  • bucketName
    已提供。这是
    Bucket
  • .s3.amazonaws.com/
  • 文件名
    已提供。这是
  • 由于我们无法更改AWS提供的编码、URL或函数的格式,因此更重要的是格式URL是否符合您的要求?此URL是否能够下载s3文件并在60秒后过期?


    一定要遵守这些。

    他没有问任何有关CloudFront的问题。他询问如何像大多数人一样直接从S3存储桶访问文件。CloudFront不需要使用S3,它们是不同的服务,尽管它们可以结合使用。

    您的bucket可以通过任何一种方式访问。这会导致问题吗?请注意,这是一个虚拟托管样式的URL,而不是路径样式的URL。两者均有效。两者仅对us-east-1中的桶有效。路径样式必须引用区域端点,否则,例如
    https://s3.us-east-3.amazonaws.com/example-bucket
    适用于us-east-2。您遇到的实际问题是什么?请不要将您的评论作为答案发布。您可以在问题和发布的答案下方找到评论部分。请以后使用评论部分。