func (bucket Bucket) InitiateMultipartUpload(objectKey string, options ...Option) (InitiateMultipartUploadResult, error) {
	var imur InitiateMultipartUploadResult
	opts := addContentType(options, objectKey)
	params := map[string]interface{}{}
	params["uploads"] = nil
	resp, err := bucket.do("POST", objectKey, params, opts, nil, nil)
	if err != nil {
		return imur, err
	}
	defer resp.Body.Close()
	err = xmlUnmarshal(resp.Body, &imur)
	return imur, err
}
InitiateMultipartUpload initializes multipart upload

objectKey    object name
options    the object constricts for upload. The valid options are CacheControl, ContentDisposition, ContentEncoding, Expires,
ServerSideEncryption, Meta, check out the following link:
https://help.aliyun.com/document_detail/oss/api-reference/multipart-upload/InitiateMultipartUpload.html

InitiateMultipartUploadResult    the return value of the InitiateMultipartUpload, which is used for calls later on such as UploadPartFromFile,UploadPartCopy.
error    it's nil if the operation succeeds, otherwise it's an error object.
package oss
import (
	"bytes"
	"encoding/xml"
	"io"
	"net/http"
	"net/url"
	"os"
	"sort"
	"strconv"
)