📅  最后修改于: 2023-12-03 15:21:53.818000             🧑  作者: Mango
AWS S3 是一个亚马逊云服务,提供了一个可扩展的对象存储解决方案。开发人员可以通过 S3 存储和检索任意数量和任意大小的数据对象,同时也可以将这些对象存储为公有或私有的。
在某些情况下,您可能需要提供要由其他人下载的文件的 URL,但是您需要确保该 URL 是临时的且具有安全性。AWS S3 签名 URL 就是解决这个问题的方案之一。
S3 签名 URL 是一个授权访问 S3 存储桶中某个对象的 URL。在创建签名 URL 时,您可以为该 URL 设置一个时间戳,当该时间戳过期后,该 URL 将失效。此外,您可以为签名 URL 指定授权访问该 URL 的 AWS 账户和区域。
以下是如何使用 JavaScript 从 S3 存储桶获取签名 URL 的步骤:
您需要为从 JavaScript 代码中访问 S3 API 的 IAM 用户分配足够的权限,例如 s3:GetObject 和 s3:PutObject。
const AWS = require('aws-sdk');
AWS.config.update({
accessKeyId: '<AWS access key ID>',
secretAccessKey: '<AWS secret access key>',
region: '<AWS region>'
});
const s3 = new AWS.S3();
const params = {
Bucket: '<your-bucket-name>',
Key: '<your-object-key>',
Expires: 3600 // 过期时间(单位:秒)
};
const signedUrl = s3.getSignedUrl('getObject', params);
console.log(`The URL is ${signedUrl}`);
请将 <your-bucket-name>
和 <your-object-key>
替换为您要下载的对象的存储桶名称和对象键。
以上代码将创建一个 S3 签名 URL,您可以将其返回给用户以允许其下载该对象。注意,签名 URL 将在指定的过期时间后过期。
本文向您介绍了如何使用 JavaScript 从 S3 存储桶获取文件的签名 URL。希望这篇文章可以帮助您更好地了解 S3 签名 URL,并在实际开发中成功地实现该功能。