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