in iot-onboarding-service/src/cloudrack-lambda-core/s3/s3.go [361:398]
func (mpc S3MultipartConfig) Done() error {
sess, _ := session.NewSession(&aws.Config{
Region: aws.String(mpc.S3Config.Region)},
)
svc := s3.New(sess)
log.Printf("[Done] Completing Multipart Upload %+v", mpc.MultipartUploadId)
uploadedParts, err := mpc.Parts()
log.Printf("[Done] Found %+v uploaded parts", len(uploadedParts))
if err != nil {
log.Printf("Failed to complete Multipart Upload since the listPart operation failed with error: %+v", err)
return err
}
if len(uploadedParts) == 0 {
log.Printf("Failed to complete Multipart upload: no part uploaded. please abort")
return errors.New("No part uploaded")
}
params := &s3.CompleteMultipartUploadInput{
Bucket: aws.String(mpc.S3Config.Bucket), // Required
Key: aws.String(mpc.Key()), // Required
UploadId: aws.String(mpc.MultipartUploadId), // Required
MultipartUpload: &s3.CompletedMultipartUpload{
Parts: uploadedParts,
},
}
_, err2 := svc.CompleteMultipartUpload(params)
if err2 != nil {
log.Printf("Failed to complete Multipart Upload: %+v", err2)
return err2
}
return nil
}