javascript - S3 预签名 URL 的格式
问题描述
我正在尝试使用以下方法在我的 JavaScript 代码中创建 S3 预签名 URL:
var params = {Bucket: 'myBucketName', Key: 'key', Expires: 60};
var url = s3.getSignedUrl('getObject', params);
console.log('The URL is ', url);
执行后,我的控制台日志显示:
网址是https://myBucketName.s3.amazonaws.com/myAudioFile.mp3 ...
但我认为它应该显示:
网址是https://s3.amazonaws.com/myBucketName/myAudioFile.mp3 ...
为什么它将 S3 存储桶名称放在 URL 中的“s3.amazonaws.com”之前?
过去使用这种方法可以正常工作。AWS 开发工具包是否已更改?
解决方案
这就是 AWS s3 存储桶的 signedURL 格式。当 AWS 形成签名用户getObject
或putObject
此格式保持不变时。
AWS 签名 URL 的格式为:
https://
bucketName
假如。这是Bucket
.s3.amazonaws.com/
fileName
假如。这是Key
由于我们无法更改 AWS 提供的编码或 URL 或功能的格式,因此更重要的是格式是URL 是否执行您希望它执行的操作?此 URL 是否能够下载 s3 文件并在 60 秒后过期?
请通过 AWS 签名 URL关注这些文档。
推荐阅读
- c - 为什么没有字符被渲染
- sql-server - Openrowset 批量文件访问被拒绝
- python - 如何在 Discord.py 中获取消息的时间戳?
- unix - 在 unix 下向 Azure IoT Hub 发送消息时出现 TLS 身份验证错误
- performance - Julia:具有常量字段的结构以优化性能
- html - 为什么移动设备的网站右侧有一个空白
- laravel - gantt.parse 或 gantt.load 的参数无效(laravel 和 vuejs)
- javascript - 通过 App Context 传递 this.state 变量
- c# - 如何从 XAML 中的 ListView 获取选定项?
- android - Android:为什么材质组件不适合不同的屏幕?