如何在读取对象后获取 Amazon S3 文件内容

How to get Amazon S3 file content after reading the object

我正在使用 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

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

Body 的类型是 io.ReadCloser

添加

import "io/ioutil"

然后

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

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

您在评论中提到阅读 JSON。要阅读 JSON,请创建一个与您的 JSON 文档结构相匹配的结构(使用 https://mholt.github.io/json-to-go/ 之类的在线转换器和示例),然后添加 import "encoding/json" 和:

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