diff --git a/weed/s3api/s3api_object_handlers_copy_part_sse.go b/weed/s3api/s3api_object_handlers_copy_part_sse.go index fbad1221d..163543212 100644 --- a/weed/s3api/s3api_object_handlers_copy_part_sse.go +++ b/weed/s3api/s3api_object_handlers_copy_part_sse.go @@ -355,6 +355,11 @@ func fakeContentRequest(orig *http.Request, body io.ReadCloser, contentLength in return cloned } +// copyObjectPartViaReencryption is the UploadPartCopy slow path: it re-streams the +// source range through putToFiler so the destination's SSE re-encryption and/or +// requested checksum are produced on write. A raw chunk copy can't: it would leave +// dest chunks under the source key (corrupt GET) and parts with no checksum +// (completion fails). func (s3a *S3ApiServer) copyObjectPartViaReencryption( r *http.Request, srcEntry *filer_pb.Entry,