MCPcopy
hub / github.com/minio/minio-go / uploadPartCopy

Method uploadPartCopy

api-compose-object.go:395–428  ·  view source on GitHub ↗

uploadPartCopy - helper function to create a part in a multipart upload via an upload-part-copy request https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadUploadPartCopy.html

(ctx context.Context, bucket, object, uploadID string, partNumber int,
	headers http.Header,
)

Source from the content-addressed store, hash-verified

393// upload via an upload-part-copy request
394// https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadUploadPartCopy.html
395func (c *Client) uploadPartCopy(ctx context.Context, bucket, object, uploadID string, partNumber int,
396 headers http.Header,
397) (p CompletePart, err error) {
398 // Build query parameters
399 urlValues := make(url.Values)
400 urlValues.Set("partNumber", strconv.Itoa(partNumber))
401 urlValues.Set("uploadId", uploadID)
402
403 // Send upload-part-copy request
404 resp, err := c.executeMethod(ctx, http.MethodPut, requestMetadata{
405 bucketName: bucket,
406 objectName: object,
407 customHeader: headers,
408 queryValues: urlValues,
409 })
410 defer closeResponse(resp)
411 if err != nil {
412 return p, err
413 }
414
415 // Check if we got an error response.
416 if resp.StatusCode != http.StatusOK {
417 return p, httpRespToErrorResponse(resp, bucket, object)
418 }
419
420 // Decode copy-part response on success.
421 cpObjRes := copyObjectResult{}
422 err = xmlDecoder(resp.Body, &cpObjRes)
423 if err != nil {
424 return p, err
425 }
426 p.PartNumber, p.ETag = partNumber, cpObjRes.ETag
427 return p, nil
428}
429
430// ComposeObject - creates an object using server-side copying
431// of existing objects. It takes a list of source objects (with optional offsets)

Callers 1

ComposeObjectMethod · 0.95

Calls 5

executeMethodMethod · 0.95
httpRespToErrorResponseFunction · 0.85
closeResponseFunction · 0.70
xmlDecoderFunction · 0.70
SetMethod · 0.45

Tested by

no test coverage detected