func()

in dth/client.go [486:522]


func (c *S3Client) CompleteMultipartUpload(ctx context.Context, key, uploadID *string, parts []*Part) (etag *string, err error) {
	// log.Printf("S3> Complete Multipart Uploads for %s\n", key)

	// Need to convert dth.Part to types.CompletedPart
	// var completedPart []types.CompletedPart
	completedPart := make([]types.CompletedPart, len(parts))

	for i, part := range parts {
		cp := types.CompletedPart{
			PartNumber: int32(part.partNumber),
			ETag:       part.etag,
		}
		completedPart[i] = cp
	}
	// log.Println("Completed parts are:")
	// log.Println(completedPart)

	input := &s3.CompleteMultipartUploadInput{
		Bucket:          &c.bucket,
		Key:             key,
		UploadId:        uploadID,
		MultipartUpload: &types.CompletedMultipartUpload{Parts: completedPart},
	}

	output, err := c.client.CompleteMultipartUpload(ctx, input)
	if err != nil {
		log.Printf("S3> Unable to complete multipart upload for %s - %s\n", *key, err.Error())
	} else {
		// etag = output.ETag
		_etag := strings.Trim(*output.ETag, "\"")
		etag = &_etag
		// log.Printf("S3> Completed multipart uploads for %s - etag is %s\n", key, *output.ETag)
	}

	return

}