1 回答
- 最新
- 投票最多
- 评论最多
0
【以下的回答经过翻译处理】 预签名 URL 可以在公共块访问 S3 桶 或 阻止公开访问设置的 S3 桶中使用。
- 实现这个的最简单方法是创建一个具有 API 网关的前端,该前端调用一个 Lambda,调用 S3API 生成签名的 URL。这对上传和下载都有效。
- 如果您不想使用 API 网关,您可以有一个前端 Web 服务器。
这是一篇解释整个过程的文章:使用 API 网关和 Lambda 生成带有预签名 URL 如果您需要下载文件,可以按照以下方式进行操作:
async function getDownloadUrl (file) {
const { key, versionId } = file
const params = {
Bucket: my-test-bucket,,
Key: 'myDoc/myfile.pdf', //在 S3 中的目录
VersionId: versionId, //我们使用 S3 版本控制
Expires: 60
}
try {
const url = await new Promise((resolve, reject) => {
s3.getSignedUrl('getObject', params, function (err, url) {
if (err) {
reject(err)
}
resolve(url)
})
})
return url
} catch (err) {
logger.error('s3 getObject, get signedUrl failed')
throw err
}
}
相关内容
- AWS 官方已更新 2 年前
- AWS 官方已更新 3 个月前
- AWS 官方已更新 4 个月前
- AWS 官方已更新 1 年前