0
我从s3使用go sdk获取文件。 尽管响应指示ContentLength,但实际从身体读取不会填充我的缓冲区。S3 GetObject返回内容,但从身体读取不填充缓冲区
响应
{
AcceptRanges: "bytes",
Body: buffer(0xc0421d6cc0),
ContentEncoding: "utf-8",
ContentLength: 13,
ContentType: "application/json",
ETag: "\"a15ce1024b219fd76684ba1561d23ccc\"",
LastModified: 2017-02-09 15:16:45 +0000 UTC,
Metadata: {
}
}
代码
var buf []byte
r, err := resp.Body.Read(buf)
if err != nil {
return "", err
}
defer resp.Body.Close()
fmt.Printf("read %d, buff %d", r, len(buf))
"read 0, buff 0"
你的缓冲区是零,所以你什么也没读。我想你正在寻找['ioutil.ReadAll']的功能(https://golang.org/pkg/io/ioutil/#ReadAll)。 – JimB
@JimB谢谢就是这样。你可以添加一个答案,所以我可以upvote,如果你喜欢 – Mantzas