我正在用 go 编写一个 web 应用程序,我正在使用 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 的经验,所以我不确定这是否是一种好方法,但它确实有效。对于生产服务器,这是一个很好的方法吗?有没有更好、更可靠的方法?
开满天机
开心每一天1111
相关分类