【问题标题】:How to get Amazon S3 file content after reading the object读取对象后如何获取 Amazon S3 文件内容
【发布时间】:2021-08-29 08:25:03
【问题描述】:

我正在使用 AWS SDK go v2 中的 GetObject 方法从 Amazon S3 读取对象

    input := &s3.GetObjectInput{
    Bucket: aws.String(w.Bucket),
    Key:    key,
}
object, _ := w.Client.GetObject(ctx, input)
return object

我可以访问对象的内容大小和文件类型,并且有一个参数

Object.Body

应该有文件内容..但我似乎找不到访问它的方法。

正文的类型为io.ReadCloser

【问题讨论】:

  • 你想对身体做什么?例如,是否要将正文复制到文件中,将正文解码为 JSON 或其他格式,获取字节切片,????
  • @CeriseLimón 一段字节.. 和 JSON.. 我想要两种格式

标签: amazon-web-services go amazon-s3 aws-sdk-go


【解决方案1】:

添加

import "io/ioutil"

然后

bodyInBytes, err := ioutil.ReadAll(object.Body)

如果您在 1.16 之后使用 go,则首选 io.ReadAll,导入 "io"

您提到在 cmets 中读取 JSON。要读取 JSON,请创建一个与您的 JSON 文档结构匹配的结构(使用带有示例的 https://mholt.github.io/json-to-go/ 等在线转换器),然后添加 import "encoding/json" 并:

data := mystruct{}
err := json.Unmarshal(bodyInBytes, &data)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-23
    • 2011-07-09
    • 2014-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多