第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Gzip 未壓縮的 http.Response.Body

Gzip 未壓縮的 http.Response.Body

Go
猛跑小豬 2021-10-18 14:23:26
我正在構建一個 Go 應用程序,它接受一個http.Response對象并將其(響應頭和正文)保存到 redis 哈希中。當應用程序收到一個http.Response.Body未壓縮的文件時,我想在將其保存到緩存之前對其進行 gzip。我的困惑源于我無法清楚地了解 Go 的io接口,以及如何在http.Response.Body'sio.ReadCloser和 gzip之間進行協(xié)商Writer。我想這里有一個優(yōu)雅的流媒體解決方案,但我無法讓它發(fā)揮作用。
查看完整描述

1 回答

?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

v

如果你已經確定身體無壓縮,如果你需要一個[]byte壓縮的數(shù)據(jù)(而不是例如已經有一個io.Writer你可以寫,例如,如果你想身體保存到一個文件,那么你會希望流到文件而不是緩沖區(qū))然后這樣的事情應該工作:


func getCompressedBody(r *http.Response) ([]byte, error) {

    var buf bytes.Buffer

    gz := gzip.NewWriter(&buf)

    if _, err := io.Copy(gz, r.Body); err != nil {

        return nil, err

    }

    err := gz.Close()

    return buf.Bytes(), err

}

(這只是一個例子,可能是內聯(lián)的,而不是作為一個函數(shù);如果你想要它作為一個函數(shù),那么它可能應該使用 anio.Reader而不是 an *http.Response)。


查看完整回答
反對 回復 2021-10-18
  • 1 回答
  • 0 關注
  • 212 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號