普通に文字列 (string) から gzip を生成するやり方
エラーハンドリングは省略
import (
"bytes"
"compress/gzip"
)
func makeGzip(body string) []byte {
var b bytes.Buffer
gw := gzip.NewWriter(&b)
_, err := gw.Write([]byte(body)); if err != nil {
...
}
gw.Flush()
gw.Close()
return b.Bytes()
}
gw.Close() はファイルストリームのクローズみたいな挙動ではなく,
gzip のフッターデータ書き込みなので defer 等で最後に回そうとすると
不正なデータになってしまうので注意. (とりあえず解凍はできない)
Close() は Flush() の処理を含んでいるかもしれませんが自信がないです.