有没有什么方法可以生成预签名网址而没有任何到期日期? 我正在开发一个电子邮件应用程序,我的附件将保存在S3中。 另请告诉我通过JavaScript SDK下载附件的最佳方式是什么。
我正在使用以下代码
var params = {Bucket: 'bucket', Key: 'key', Expires: 60};
var url = s3.getSignedUrl('getObject', params);
console.log('The URL is', url);
答案 0 :(得分:43)
从创建时起,预签名网址的最长到期时间为one week。因此,如果没有到期时间,就无法获得预先签名的网址。
答案 1 :(得分:2)
这取决于您如何生成S3预签名URL。具体来说,您使用哪种签名版本以及使用哪种类型的IAM凭据。
可用于创建预签名URL的凭据包括:
请特别注意:
有关更多信息,请参见:
答案 2 :(得分:1)
对您来说,某种解决方案可能是制作可为S3存储桶提供服务的AWS CloudFront发行版,并且仅对“发行源访问身份”具有有限的访问权限,然后使用CloudFront签名URL。哪个到期时间甚至可以是几年。因此,对于无限或半无限的网址,我建议使用这种解决方案。
答案 3 :(得分:0)
在客户端上,您可以这样做:
const image = image.split('&Expires')[0]
那是我使用的解决方法之一