mirror of
https://github.com/minio/minio.git
synced 2025-04-19 02:05:24 -04:00
parent
76d9d54603
commit
9af7d627ac
@ -788,13 +788,15 @@ func (api objectAPIHandlers) CopyObjectHandler(w http.ResponseWriter, r *http.Re
|
|||||||
length = actualSize
|
length = actualSize
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var compressMetadata map[string]string
|
||||||
// No need to compress for remote etcd calls
|
// No need to compress for remote etcd calls
|
||||||
// Pass the decompressed stream to such calls.
|
// Pass the decompressed stream to such calls.
|
||||||
isCompressed := objectAPI.IsCompressionSupported() && isCompressible(r.Header, srcObject) && !isRemoteCallRequired(ctx, srcBucket, dstBucket, objectAPI)
|
isCompressed := objectAPI.IsCompressionSupported() && isCompressible(r.Header, srcObject) && !isRemoteCallRequired(ctx, srcBucket, dstBucket, objectAPI)
|
||||||
if isCompressed {
|
if isCompressed {
|
||||||
// Storing the compression metadata.
|
compressMetadata = make(map[string]string, 2)
|
||||||
srcInfo.UserDefined[ReservedMetadataPrefix+"compression"] = compressionAlgorithmV1
|
// Preserving the compression metadata.
|
||||||
srcInfo.UserDefined[ReservedMetadataPrefix+"actual-size"] = strconv.FormatInt(actualSize, 10)
|
compressMetadata[ReservedMetadataPrefix+"compression"] = compressionAlgorithmV1
|
||||||
|
compressMetadata[ReservedMetadataPrefix+"actual-size"] = strconv.FormatInt(actualSize, 10)
|
||||||
// Remove all source encrypted related metadata to
|
// Remove all source encrypted related metadata to
|
||||||
// avoid copying them in target object.
|
// avoid copying them in target object.
|
||||||
crypto.RemoveInternalEntries(srcInfo.UserDefined)
|
crypto.RemoveInternalEntries(srcInfo.UserDefined)
|
||||||
@ -937,6 +939,11 @@ func (api objectAPIHandlers) CopyObjectHandler(w http.ResponseWriter, r *http.Re
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Store the preserved compression metadata.
|
||||||
|
for k, v := range compressMetadata {
|
||||||
|
srcInfo.UserDefined[k] = v
|
||||||
|
}
|
||||||
|
|
||||||
// We need to preserve the encryption headers set in EncryptRequest,
|
// We need to preserve the encryption headers set in EncryptRequest,
|
||||||
// so we do not want to override them, copy them instead.
|
// so we do not want to override them, copy them instead.
|
||||||
for k, v := range encMetadata {
|
for k, v := range encMetadata {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user