mirror of https://github.com/minio/minio.git
Compression: Handle auto encryption when size is unknown (#7600)
When size is unknown and auto encryption is enabled, and compression is set to true, putobject API is failing. Moving adding the SSE-S3 header as part of the request to before checking if compression can be done, otherwise the size is set to -1 and that seems to cause problems.
This commit is contained in:
parent
033f3a4d51
commit
4b858b562a
|
@ -1176,6 +1176,11 @@ func (api objectAPIHandlers) PutObjectHandler(w http.ResponseWriter, r *http.Req
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This request header needs to be set prior to setting ObjectOptions
|
||||||
|
if globalAutoEncryption && !crypto.SSEC.IsRequested(r.Header) {
|
||||||
|
r.Header.Add(crypto.SSEHeader, crypto.SSEAlgorithmAES256)
|
||||||
|
}
|
||||||
|
|
||||||
actualSize := size
|
actualSize := size
|
||||||
|
|
||||||
if objectAPI.IsCompressionSupported() && isCompressible(r.Header, object) && size > 0 {
|
if objectAPI.IsCompressionSupported() && isCompressible(r.Header, object) && size > 0 {
|
||||||
|
@ -1205,10 +1210,6 @@ func (api objectAPIHandlers) PutObjectHandler(w http.ResponseWriter, r *http.Req
|
||||||
rawReader := hashReader
|
rawReader := hashReader
|
||||||
pReader := NewPutObjReader(rawReader, nil, nil)
|
pReader := NewPutObjReader(rawReader, nil, nil)
|
||||||
|
|
||||||
// This request header needs to be set prior to setting ObjectOptions
|
|
||||||
if globalAutoEncryption && !crypto.SSEC.IsRequested(r.Header) {
|
|
||||||
r.Header.Add(crypto.SSEHeader, crypto.SSEAlgorithmAES256)
|
|
||||||
}
|
|
||||||
// get gateway encryption options
|
// get gateway encryption options
|
||||||
var opts ObjectOptions
|
var opts ObjectOptions
|
||||||
opts, err = putOpts(ctx, r, bucket, object, metadata)
|
opts, err = putOpts(ctx, r, bucket, object, metadata)
|
||||||
|
|
Loading…
Reference in New Issue