gpt4 book ai didi

amazon-web-services - 安全地提供来自 S3 的内容

转载 作者:IT王子 更新时间:2023-10-29 01:51:15 26 4
gpt4 key购买 nike

我正在用 go 编写一个网络应用程序,我正在使用 amazon s3 来存储所有用户文件,这包括个人资料图片以及文本和音频文件。

但是,我正在努力了解什么是安全地执行此操作的正确方法。我的想法是在确保请求来自有权访问所请求文件的经过身份验证的用户之后,只需使用 aws go 库来获取文件并将其写入 http 请求。

像这样:

import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/s3"
"io"
)

func serveFile(file string, w http.ResponseWriter) {
svc := s3.New(session.New(), aws.NewConfig().WithRegion(config.AWS.Region))

params := &s3.GetObjectInput{
Bucket: aws.String("Bucket name"),
Key: aws.String(file),
}

resp, err := svc.GetObject(params)
n, err := io.Copy(w, resp.Body)

}

我没有太多使用 AWS 的经验,所以我不确定这是否是一个好的方法,但它确实有效。对于生产服务器,这是一个好方法吗?有没有更好、更可靠的方法?

最佳答案

这个方法可行。但它依赖于通过您的客户端代理的请求。

推荐的方法是使用签名 url。这将创建一个在您指定的时间段内有效的 url,允许最终用户直接从 S3 下载文件。

您的 key 不会暴露,因为 url 只包含一个签名。

关于amazon-web-services - 安全地提供来自 S3 的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34469309/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com