上传对象

功能说明

支持上传本地文件或输入流到指定的 Bucket 中。推荐上传不大于20 MB 的小文件,单次上传大小限制为5GB,大文件上传请使用分块上传。

注意:当前访问策略条目限制为1000条,如果您不需要进行对象 ACL 控制,请在上传时不要设置,默认继承 Bucket 权限。

方法原型

  1. func (s *ObjectService) Put(ctx context.Context, key string, r io.Reader, opt *ObjectPutOptions) (*Response, error)

请求示例

  1. key := "put_option.go"
  2. f := strings.NewReader("test xxx")
  3. opt := &cos.ObjectPutOptions{
  4. ObjectPutHeaderOptions: &cos.ObjectPutHeaderOptions{
  5. ContentType: "text/html",
  6. },
  7. ACLHeaderOptions: &cos.ACLHeaderOptions{
  8. XCosACL: "private",
  9. },
  10. }
  11. resp, err = client.Object.Put(context.Background(), key, f, opt)

参数说明

  1. type ObjectPutOptions struct {
  2. *ACLHeaderOptions
  3. *ObjectPutHeaderOptions
  4. }
  5. type ACLHeaderOptions struct {
  6. XCosACL string
  7. XCosGrantRead string
  8. XCosGrantWrite string
  9. XCosGrantFullControl string
  10. }
  11. type ObjectPutHeaderOptions struct {
  12. CacheControl string
  13. ContentDisposition string
  14. ContentEncoding string
  15. ContentType string
  16. ContentLength int
  17. Expires string
  18. // 自定义的 x-cos-meta-* header
  19. XCosMetaXXX *http.Header
  20. XCosStorageClass string
  21. }
参数名称参数描述类型必填
r上传文件的内容,可以为文件流或字节流,当 r 不是 bytes.Buffer/bytes.Reader/strings.Reader 时,必须指定 opt.ObjectPutHeaderOptions.ContentLengthio.Reader
key对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 bucket1-1250000000.cos.ap-guangzhou.myqcloud.com/doc1/pic1.jpg 中,对象键为 doc1/pic1.jpgstring
XCosACL设置文件的ACL,如 private,public-read,public-read-writestring
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,默认值:STANDARDstring
Expires设置 Content-Expiresstring
CacheControl缓存策略,设置 Cache-Controlstring
ContentType内容类型,设置 Content-Typestring
ContentDisposition文件名称,设置 Content-Dispositionstring
ContentEncoding编码格式,设置 Content-Encodingstring
ContentLength设置传输长度string
XCosMetaXXX用户自定义的文件元信息, 必须以 x-cos-meta 开头,否则会被忽略http.Header

返回结果说明

  1. {
  2. 'ETag': 'string',
  3. 'x-cos-expiration': 'string'
  4. }
参数名称参数描述类型
ETag上传文件的 MD5 值string
x-cos-expiration设置生命周期后,返回文件过期规则string