【发布时间】:2020-01-18 01:38:32
【问题描述】:
我在使用 Golang 的 openpgp 库进行压缩时遇到问题。我正在尝试加密和压缩超过 2G 的文件,所以我正在使用文件缓冲区,即使这是一种可怕的做法。我的一个sn-p代码如下:
newPath := path + ".gpg"
// encrypt string
fBuf, err := os.OpenFile(newPath, os.O_WRONLY|os.O_CREATE, 0644)
defer fBuf.Close()
if err != nil {
return "", err
}
wc, err := openpgp.Encrypt(fBuf, entityList, nil, nil, pgpConfig)
defer wc.Close()
if err != nil {
return "", err
}
r, err := os.OpenFile(path, os.O_RDONLY, 0644)
defer r.Close()
if err != nil {
return "", err
}
if _, err := io.Copy(wc, r); err != nil {
return "", err
}
pgpConfig的定义如下:
var pgpConfig = &packet.Config{
DefaultCompressionAlgo: packet.CompressionZLIB,
CompressionConfig: &packet.CompressionConfig{
Level: 6,
},
}
目前,加密和解密完全按照预期工作,但绝对没有压缩。我尝试过导入 zlib 库并直接使用它,但没有运气......再次,加密和解密工作,但没有压缩。任何帮助将不胜感激!
谢谢!
【问题讨论】: