package compressor import ( "compress/gzip" "io" "os" ) // CompressToFile uses gzip to compress data into a file func CompressToFile(targetFile string, data []byte) error { f, err := os.Create(targetFile) if err != nil { return err } defer f.Close() // Create gzip writer. w := gzip.NewWriter(f) // Write bytes in compressed form to the file. _, err = w.Write(data) if err != nil { return err } // Close the file. return w.Close() // if err := w.Close(); err != nil { // return err // } // return nil } // ReadDecompressedContent returns the content of the de-compressed file func ReadDecompressedContent(file string) ([]byte, error) { f, err := os.Open(file) if err != nil { return nil, err } defer f.Close() // Create new reader to decompress gzip. reader, err := gzip.NewReader(f) if err != nil { return nil, err } defer reader.Close() result, _ := io.ReadAll(reader) if err != nil { return nil, err } return result, nil } // ReadCompressedContent returns the content of the compressed file as is func ReadCompressedContent(file string) ([]byte, error) { f, err := os.Open(file) if err != nil { return nil, err } defer f.Close() result, _ := io.ReadAll(f) if err != nil { return nil, err } return result, nil }