func (c *S3) CompleteMultipartUploadRequest(input *CompleteMultipartUploadInput) (req *request.Request, output *CompleteMultipartUploadOutput) {
	op := &request.Operation{
		Name:       opCompleteMultipartUpload,
		HTTPMethod: "POST",
		HTTPPath:   "/{Bucket}/{Key+}",
	}
	if input == nil {
		input = &CompleteMultipartUploadInput{}
	}
	req = c.newRequest(op, input, output)
	output = &CompleteMultipartUploadOutput{}
	req.Data = output
	return
}
CompleteMultipartUploadRequest generates a "aws/request.Request" representing the
client's request for the CompleteMultipartUpload operation. The "output" return
value can be used to capture response data after the request's "Send" method
is called.

See CompleteMultipartUpload for usage and error information.

Creating a request object using this method should be used when you want to inject
custom logic into the request's lifecycle using a custom handler, or if you want to
access properties on the request object before or after sending the request. If
you just want the service response, call the CompleteMultipartUpload method directly
instead.

Note: You must call the "Send" method on the returned request object in order
to execute the request.

// Example sending a request using the CompleteMultipartUploadRequest method.
req, resp := client.CompleteMultipartUploadRequest(params)

err := req.Send()
if err == nil { // resp is now filled
fmt.Println(resp)
}
package s3
import (
	"fmt"
	"io"
	"time"
	"github.com/aws/aws-sdk-go/aws/awsutil"
	"github.com/aws/aws-sdk-go/aws/request"
	"github.com/aws/aws-sdk-go/private/protocol"
	"github.com/aws/aws-sdk-go/private/protocol/restxml"
)
const opAbortMultipartUpload = "AbortMultipartUpload"
func (c *S3) AbortMultipartUploadRequest(input *AbortMultipartUploadInput) (req *request.Request, output *AbortMultipartUploadOutput) {
	op := &request.Operation{
		Name:       opAbortMultipartUpload,
		HTTPMethod: "DELETE",
		HTTPPath:   "/{Bucket}/{Key+}",
	}
	if input == nil {
		input = &AbortMultipartUploadInput{}
	}
	req = c.newRequest(op, input, output)
	output = &AbortMultipartUploadOutput{}
	req.Data = output
	return
}
func (c *S3) AbortMultipartUpload(input *AbortMultipartUploadInput) (*AbortMultipartUploadOutput, error) {
	req, out := c.AbortMultipartUploadRequest(input)
	err := req.Send()
	return out, err
}
const opCompleteMultipartUpload = "CompleteMultipartUpload"