上传对象
功能说明
支持上传本地文件或输入流到指定的 Bucket 中。推荐上传不大于20 MB 的小文件,单次上传大小限制为5GB,大文件上传请使用分块上传。
注意:当前访问策略条目限制为1000条,如果您不需要进行对象 ACL 控制,请在上传时不要设置,默认继承 Bucket 权限。
方法原型
func (s *ObjectService) Put(ctx context.Context, key string, r io.Reader, opt *ObjectPutOptions) (*Response, error)
请求示例
key := "put_option.go"
f := strings.NewReader("test xxx")
opt := &cos.ObjectPutOptions{
ObjectPutHeaderOptions: &cos.ObjectPutHeaderOptions{
ContentType: "text/html",
},
ACLHeaderOptions: &cos.ACLHeaderOptions{
XCosACL: "private",
},
}
resp, err = client.Object.Put(context.Background(), key, f, opt)
参数说明
type ObjectPutOptions struct {
*ACLHeaderOptions
*ObjectPutHeaderOptions
}
type ACLHeaderOptions struct {
XCosACL string
XCosGrantRead string
XCosGrantWrite string
XCosGrantFullControl string
}
type ObjectPutHeaderOptions struct {
CacheControl string
ContentDisposition string
ContentEncoding string
ContentType string
ContentLength int
Expires string
XCosMetaXXX *http.Header
XCosStorageClass string
}
参数名称 | 参数描述 | 类型 | 必填 |
---|
r | 上传文件的内容,可以为文件流或字节流,当 r 不是 bytes.Buffer/bytes.Reader/strings.Reader 时,必须指定 opt.ObjectPutHeaderOptions.ContentLength | io.Reader | 是 |
key | 对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 bucket1-1250000000.cos.ap-guangzhou.myqcloud.com/doc1/pic1.jpg 中,对象键为 doc1/pic1.jpg | string | 是 |
XCosACL | 设置文件的ACL,如 private,public-read,public-read-write | string | 否 |
XCosGrantFullControl | 赋予指定账户对文件的读写权限。格式为id=" ",id=" " 当需要给子账户授权时,格式为id="qcs::cam::uin/{OwnerUin}:uin/{SubUin}" 当需要给根账户授权时,格式为id="qcs::cam::uin/{OwnerUin}:uin/{OwnerUin}" 例如id="qcs::cam::uin/123:uin/456",id="qcs::cam::uin/123:uin/123" | string | 否 |
XCosGrantRead | 赋予指定账户对文件的读权限。格式为id=" ",id=" " 当需要给子账户授权时,格式为id="qcs::cam::uin/{OwnerUin}:uin/{SubUin}" 当需要给根账户授权时,格式为id="qcs::cam::uin/{OwnerUin}:uin/{OwnerUin}" 例如id="qcs::cam::uin/123:uin/456",id="qcs::cam::uin/123:uin/123" | string | 否 |
XCosGrantWrite | 赋予指定账户对文件的写权限。格式为id=" ",id=" " 当需要给子账户授权时,格式为id="qcs::cam::uin/{OwnerUin}:uin/{SubUin}" 当需要给根账户授权时,格式为id="qcs::cam::uin/{OwnerUin}:uin/{OwnerUin}" 例如id="qcs::cam::uin/123:uin/456",id="qcs::cam::uin/123:uin/123" | string | 否 |
XCosStorageClass | 设置文件的存储类型,STANDARD、STANDARD_IA,默认值:STANDARD | string | 否 |
Expires | 设置 Content-Expires | string | 否 |
CacheControl | 缓存策略,设置 Cache-Control | string | 否 |
ContentType | 内容类型,设置 Content-Type | string | 否 |
ContentDisposition | 文件名称,设置 Content-Disposition | string | 否 |
ContentEncoding | 编码格式,设置 Content-Encoding | string | 否 |
ContentLength | 设置传输长度 | string | 否 |
XCosMetaXXX | 用户自定义的文件元信息, 必须以 x-cos-meta 开头,否则会被忽略 | http.Header | 否 |
返回结果说明
{
'ETag': 'string',
'x-cos-expiration': 'string'
}
参数名称 | 参数描述 | 类型 |
---|
ETag | 上传文件的 MD5 值 | string |
x-cos-expiration | 设置生命周期后,返回文件过期规则 | string |