为了账号安全,请及时绑定邮箱和手机立即绑定

Go:如何通过 GIN-Router 从 AWS S3 将文件作为二进制流发送到浏览器?

Go:如何通过 GIN-Router 从 AWS S3 将文件作为二进制流发送到浏览器?

Go
一只甜甜圈 2022-11-28 10:18:33
我如何将从 S3 收到的文件作为二进制响应发送到 Gin?比方说,我有以下代码从 S3 存储桶中获取图像:response, err := i.s3Client.GetObject(context.TODO(), &s3.GetObjectInput{    Bucket: aws.String("test"),    Key:    aws.String(filename),})如何将此响应通过管道传输到 Gin-router 的响应上下文中?我可以做类似的事情:body, err := ioutil.ReadAll(response.Body)if err != nil {    ctx.JSON(http.StatusBadRequest, err)    return}但是如何告诉杜松子酒将其作为输出呢?我想到但行不通的是:ctx.Header("Content-Type", *response.ContentType)ctx.Header("Cache-control", "max-age="+strconv.Itoa(60*60*24*365))ctx.Write(body)有什么我可以在这里做的吗?
查看完整描述

1 回答

?
森林海

TA贡献2011条经验 获得超2个赞

你几乎已经完成:

而不是ctx.Write使用这个:

ctx.DataFromReader(200, response.ContentLength, *response.ContentType, response.Body, nil)



查看完整回答
反对 回复 2022-11-28
  • 1 回答
  • 0 关注
  • 154 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信