从Golang REST API生成Amazon S3令牌

从Golang REST API生成Amazon S3令牌,api,amazon-web-services,go,amazon-s3,Api,Amazon Web Services,Go,Amazon S3,我正在编写一个Golang REST API,它需要为用户生成S3令牌,以便用户可以将文件上载到bucket中的特定文件夹 这就是我需要实现的: Method: GET Endpoint: myapp.com/images/:imageid/token Description: Return 2 tokens so that the user can upload files to the S3 bucket related to the image ID param

我正在编写一个Golang REST API,它需要为用户生成S3令牌,以便用户可以将文件上载到bucket中的特定文件夹

这就是我需要实现的:

Method: GET
Endpoint: myapp.com/images/:imageid/token
Description: Return 2 tokens so that the user can upload files to the S3 
             bucket related to the image ID parameter.
我正在使用Golang echo框架。 我真的不知道如何实现这个功能


这是通过AWS SDK完成的,还是Amazon提供了其他编程生成令牌的方法?

要生成令牌供用户直接将文件上载到s3,可以使用

生成预签名URL后,将其返回给用户,调用应用程序可以使用该URL上载文件

上面链接中的这个示例应该是关于您要查找的内容:

svc := s3.New(session.New(&aws.Config{Region: aws.String("us-west-2")}))
req, _ := svc.PutObjectRequest(&s3.PutObjectInput{
    Bucket: aws.String("myBucket"),
    Key:    aws.String("myKey"),
})
str, err := req.Presign(15 * time.Minute)

log.Println("The URL is:", str, " err:", err)

您正在尝试生成哪种令牌?这听起来像是因为你说的是2个令牌,你可能试图生成短期的AWS\u访问\u密钥\u ID和AWS\u机密\u访问\u密钥对?老实说,我不知道令牌应该是什么。我想你是对的。我将如何从程序内部生成这些访问密钥?预签名URL将是您的目标。您需要为每次执行的上载返回一个。要明确的是,我在第一条评论中提到的短寿命密钥对不是您想要去的地方。这很好,谢谢。