我正在使用NodeJS将文件上传到我的S3存储桶中。作为回应,我收到了该文件的链接。
例如,我收到https://my-bucket-name.s3.ap-south-1.amazonaws.com/testUpload_s.txt
该存储桶目前不允许公共访问。我应该如何从存储桶安全地访问文件?我想知道以下方法是否安全?
允许存储桶的公共访问权限
在上传过程中,每个文件都会被赋予一个随机的唯一名称
此文件名或响应URL存储在数据库中
这种方法安全吗?如果没有,是否有其他方法可以做到?
答案 0 :(得分:1)
有许多选项可让客户端访问S3中的对象,包括:
它们各自提供不同的用例。如果任何人都可以安全访问文件,则使用#1(例如,文件是在公共网站上显示的图像)。如果客户端具有AWS凭证,请使用#2。如果您不想公开文件,但客户端没有AWS凭证,请使用#3。注意#3,预签名URL是有时间限制的。
答案 1 :(得分:0)
您不需要存储URL。您可以使用文件名查询S3存储桶中的对象。
用于从外部访问使用签名的URL。
https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/s3-example-presigned-urls.html