mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2024-01-19 02:48:24 +00:00
filer: avoid encryption and compression at the same time
fix https://github.com/chrislusf/seaweedfs/issues/1828
This commit is contained in:
parent
62191b08ea
commit
44bdfb2d15
|
@ -130,7 +130,8 @@ func doUploadData(uploadUrl string, filename string, cipher bool, data []byte, i
|
||||||
// gzip if possible
|
// gzip if possible
|
||||||
// this could be double copying
|
// this could be double copying
|
||||||
clearDataLen = len(data)
|
clearDataLen = len(data)
|
||||||
if shouldGzipNow {
|
clearData := data
|
||||||
|
if shouldGzipNow && !cipher {
|
||||||
compressed, compressErr := util.GzipData(data)
|
compressed, compressErr := util.GzipData(data)
|
||||||
// fmt.Printf("data is compressed from %d ==> %d\n", len(data), len(compressed))
|
// fmt.Printf("data is compressed from %d ==> %d\n", len(data), len(compressed))
|
||||||
if compressErr == nil {
|
if compressErr == nil {
|
||||||
|
@ -139,7 +140,7 @@ func doUploadData(uploadUrl string, filename string, cipher bool, data []byte, i
|
||||||
}
|
}
|
||||||
} else if isInputCompressed {
|
} else if isInputCompressed {
|
||||||
// just to get the clear data length
|
// just to get the clear data length
|
||||||
clearData, err := util.DecompressData(data)
|
clearData, err = util.DecompressData(data)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
clearDataLen = len(clearData)
|
clearDataLen = len(clearData)
|
||||||
}
|
}
|
||||||
|
@ -150,7 +151,7 @@ func doUploadData(uploadUrl string, filename string, cipher bool, data []byte, i
|
||||||
|
|
||||||
// encrypt
|
// encrypt
|
||||||
cipherKey := util.GenCipherKey()
|
cipherKey := util.GenCipherKey()
|
||||||
encryptedData, encryptionErr := util.Encrypt(data, cipherKey)
|
encryptedData, encryptionErr := util.Encrypt(clearData, cipherKey)
|
||||||
if encryptionErr != nil {
|
if encryptionErr != nil {
|
||||||
err = fmt.Errorf("encrypt input: %v", encryptionErr)
|
err = fmt.Errorf("encrypt input: %v", encryptionErr)
|
||||||
return
|
return
|
||||||
|
@ -161,27 +162,27 @@ func doUploadData(uploadUrl string, filename string, cipher bool, data []byte, i
|
||||||
_, err = w.Write(encryptedData)
|
_, err = w.Write(encryptedData)
|
||||||
return
|
return
|
||||||
}, "", false, len(encryptedData), "", nil, jwt)
|
}, "", false, len(encryptedData), "", nil, jwt)
|
||||||
if uploadResult != nil {
|
if uploadResult == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
uploadResult.Name = filename
|
uploadResult.Name = filename
|
||||||
uploadResult.Mime = mtype
|
uploadResult.Mime = mtype
|
||||||
uploadResult.CipherKey = cipherKey
|
uploadResult.CipherKey = cipherKey
|
||||||
}
|
uploadResult.Size = uint32(clearDataLen)
|
||||||
} else {
|
} else {
|
||||||
// upload data
|
// upload data
|
||||||
uploadResult, err = upload_content(uploadUrl, func(w io.Writer) (err error) {
|
uploadResult, err = upload_content(uploadUrl, func(w io.Writer) (err error) {
|
||||||
_, err = w.Write(data)
|
_, err = w.Write(data)
|
||||||
return
|
return
|
||||||
}, filename, contentIsGzipped, len(data), mtype, pairMap, jwt)
|
}, filename, contentIsGzipped, len(data), mtype, pairMap, jwt)
|
||||||
}
|
|
||||||
|
|
||||||
if uploadResult == nil {
|
if uploadResult == nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
uploadResult.Size = uint32(clearDataLen)
|
uploadResult.Size = uint32(clearDataLen)
|
||||||
if contentIsGzipped {
|
if contentIsGzipped {
|
||||||
uploadResult.Gzip = 1
|
uploadResult.Gzip = 1
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return uploadResult, err
|
return uploadResult, err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue