func AcceptEncoding(value string) Option {
	return setHeader(HTTPHeaderAcceptEncoding, value)
}
AcceptEncoding is an option to set Accept-Encoding header
package oss
import (
	"fmt"
	"net/http"
	"strconv"
	"strings"
	"time"
)
type optionType string
const (
	optionParam optionType = "HTTPParameter"  
	optionHTTP  optionType = "HTTPHeader"     
	optionArg   optionType = "FuncArgument"   
)
const (
	deleteObjectsQuiet = "delete-objects-quiet"
	routineNum         = "x-routine-num"
	checkpointConfig   = "x-cp-config"
	initCRC64          = "init-crc64"
	progressListener   = "x-progress-listener"
	storageClass       = "storage-class"
)
type (
	optionValue struct {
		Value interface{}
		Type  optionType
	}
	Option func(map[string]optionValue) error
)
func ACL(acl ACLType) Option {
	return setHeader(HTTPHeaderOssACL, string(acl))
}
func ContentType(value string) Option {
	return setHeader(HTTPHeaderContentType, value)
}
func ContentLength(length int64) Option {
	return setHeader(HTTPHeaderContentLength, strconv.FormatInt(length, 10))
}
func CacheControl(value string) Option {
	return setHeader(HTTPHeaderCacheControl, value)
}
func ContentDisposition(value string) Option {
	return setHeader(HTTPHeaderContentDisposition, value)
}
func ContentEncoding(value string) Option {
	return setHeader(HTTPHeaderContentEncoding, value)
}
func ContentMD5(value string) Option {
	return setHeader(HTTPHeaderContentMD5, value)
}
func Expires(t time.Time) Option {
	return setHeader(HTTPHeaderExpires, t.Format(http.TimeFormat))
}
func Meta(key, value string) Option {
	return setHeader(HTTPHeaderOssMetaPrefix+key, value)
}
func Range(start, end int64) Option {
	return setHeader(HTTPHeaderRange, fmt.Sprintf("bytes=%d-%d", start, end))
}
func NormalizedRange(nr string) Option {
	return setHeader(HTTPHeaderRange, fmt.Sprintf("bytes=%s", strings.TrimSpace(nr)))
}