func main() {
size := 1
datasSlice := make([][]byte, size)
for i := 0; i < size; i++ {
datasSlice[i], _ = ioutil.ReadFile("images/" + strconv.Itoa(i+1) + ".jpg")
fmt.Println("raw size:", strconv.Itoa(i)+".jpg :", len(datasSlice[i]))
}
var b bytes.Buffer
w := gzip.NewWriter(&b)
defer w.Close()
for i := 0; i < size; i++ {
w.Write(datasSlice[i])
}
w.Flush()
fmt.Println("gzip size:", len(b.Bytes()))
r, _ := gzip.NewReader(&b)
defer r.Close()
undatas, _ := ioutil.ReadAll(r)
fmt.Println("ungzip size:", len(undatas))
} http://blog.csdn.net/yxw2014/article/details/43017361
func (b *MyBucket) Gzip(data []byte) []byte { var res bytes.Buffer gz, _ := gzip.NewWriterLevel(&res, 7) _, err := gz.Write(data) if err != nil { Log4e(err) } else { gz.Close() } return res.Bytes()
}
gzip压缩的过程中,Write之后一定要及时Close,不能defer, 这样才能flush, 否则得不到任何数据
posted on 2017-05-05 10:05
思月行云 阅读(1403)
评论(0) 编辑 收藏 引用 所属分类:
Golang