func()

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
}