У меня проблемы с запуском сжатия при работе с Golang библиотекой openpgp. Я пытаюсь зашифровать и сжать файлы размером более 2G, поэтому я использую файловые буферы, даже если это ужасная практика. Фрагмент моего кода выглядит следующим образом:
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 и напрямую использовать ее без удачи ... Опять же, шифрование и дешифрование работают, но без сжатия. Любая помощь будет очень признательна!
Спасибо!