package archive import ( "archive/tar" "bytes" ) // TarFileInBuffer will create a tar archive containing a single file named via fileName and using the content // specified in fileContent. Returns the archive as a byte array. func TarFileInBuffer(fileContent []byte, fileName string) ([]byte, error) { var buffer bytes.Buffer tarWriter := tar.NewWriter(&buffer) header := &tar.Header{ Name: fileName, Mode: 0600, Size: int64(len(fileContent)), } err := tarWriter.WriteHeader(header) if err != nil { return nil, err } _, err = tarWriter.Write(fileContent) if err != nil { return nil, err } err = tarWriter.Close() if err != nil { return nil, err } return buffer.Bytes(), nil }