zip
zip copied to clipboard
[Q] Can I perform encryption without File Writer?
First of all, thank you for creating such a wonderful library.
If I run it as written in the README, it works fine. However, if I try with a local buffer as follows, it doesn't seem to work the same way.
package main
import (
"bytes"
"io"
"log"
"os"
"github.com/alexmullins/zip"
)
func MakeZipWithPassword(contents []byte, password string, originalFilename string) []byte {
bytesContents := []byte(contents)
var buffer bytes.Buffer
// writer, err := os.Create(`./test.zip`)
// if err != nil {
// log.Fatalln(err)
// }
zipWriter := zip.NewWriter(&buffer)
defer zipWriter.Close()
encryptedWriter, err := zipWriter.Encrypt(originalFilename, password)
if err != nil {
log.Fatal(err)
}
_, err = io.Copy(encryptedWriter, bytes.NewReader(bytesContents))
if err != nil {
log.Fatal(err)
}
if err := zipWriter.Flush(); err != nil {
log.Fatal(err)
}
return buffer.Bytes()
}
func main() {
contents := "Hello World!"
password := "password"
originalFilename := "asdf.txt"
zipFile := MakeZipWithPassword([]byte(contents), password, originalFilename)
os.WriteFile("asdf.zip", []byte(zipFile), 0644)
}
Maybe I used something wrong?