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
}