PutObject
所有文档
menu

对象存储 BOS

PutObject

产品详情自助选购

接口描述

此接口用于向指定的Bucket上传一个文件,请求者必须具有Write权限。在PutObject前需要确保对应的Bucket已经存在,BOS支持Object文件的长度范围是0Byte-5GB。如果需要上传大于5GB的文件,请参考分块上传指南

请求(Request)

  • 请求语法

PUT /<ObjectName> HTTP/1.1
Host: <BucketName>.bj.bcebos.com
Date: <Date>
Authorization: <AuthorizationString>
Content-Type: text/plain
Content-Length: <Content_Length>
x-bce-storage-class: <Storage_class> 
  • 请求参数

    无特殊参数

  • 请求头域

    名称 类型 描述 是否必需
    Cache-Control String 下载Object的Cache设置,常见的可取值为privateno-cachemax-agemust-revalidate
    Content-Disposition String 设置浏览器是否下载,可取值为inlineattachment; filename="download.txt"
    Content-MD5 String RFC2616定义的HTTP请求内容的MD5摘要,可以通过携带该字段来验证保存在BOS侧的文件和用户预期的文件是否一致。
    Expires String 用于设置下载Object时的缓存失效时间,如果不做时间设置,BOS则会默认设置缓存失效时间为三天。
    x-bce-meta-* String 用户自定义的meta
    x-bce-content-sha256 String 通过携带该字段来验证保存在BOS侧的文件和用户预期的文件是否一致,sha256的校验准确性更高。所传数据的sha256值必须与此匹配,否则PutObject失败
    x-bce-content-crc32 String 上传object的CRC32值(IEEE算法)。
    x-bce-content-crc32c String 上传object的CRC32C值(Castagnoli算法)。
    x-bce-content-crc32c-flag String 是否计算CRC32C,仅取值为"true"时有效。
    x-bce-storage-class String 指定Object的存储类型,STANDARD_IA代表低频存储,COLD代表冷存储,ARCHIVE代表归档存储,不指定时默认是STANDARD标准存储类型;如果是多AZ类型bucket,MAZ_STANDARD_IA代表多AZ低频存储,不指定时默认是MAZ_STANDARD多AZ标准存储类型,不能是其它取值
    x-bce-acl String CannedACL支持的header,用户设置Object的权限,取值为private和public-read。
    x-bce-grant-read String CannedACL支持的header,用户设置Object的读权限。支持多个id,以逗号分隔
    x-bce-grant-full-control String CannedACL支持的header,用户设置Object的FULL_CONTROL权限。支持多个id,以逗号分隔
    x-bce-server-side-encryption String 服务端加密算法,当前支持AES256和SM4加密。
    x-bce-forbid-overwrite Boolen 是否禁止被覆盖,默认为false,当该值为true时下次上传同名文件时将返回409错误

响应(Response)

  • 响应头域

    名称 类型 描述
    ETag String Object的HTTP协议实体标签
    x-bce-version-id String Object的版本Id

注意事项

  1. Content-Length是必须参数,如果请求者指定的Content-Length比实际请求体(Object的实际数据)长度小,BOS只保存Content-Length指定长度的数据,多的这部分数据直接废弃;相反,如果Content-Length的长度大,BOS将一直等待请求者上传数据,直到超时。
  2. 上传的Object,如不指定Content-Type,BOS会自动识别设置合适的Content-Type,若无法识别则默认为application/octet-stream
  3. 由于BOS本身是一个(<Key>,<Value>)的存储系统,所以原则上并不会存在“文件夹”的概念。若需要按照文件夹来划分,可以把 “/” 符号作为分隔符模拟文件夹。例如上传object为 “work/test/123.txt”,控制台显示时会根据“/”自动切分,创建work文件夹下面的test文件夹和test文件夹下的123.txt文件。
  • 响应参数

示例

  • 请求示例

PUT /ObjectName HTTP/1.1
Host: BucketName.bj.bcebos.com
Date: Wed, 06 Apr 2016 06:34:40 GMT
Authorization: AuthorizationString
Content-Type: text/plain
Content-Length: 11434
x-bce-storage-class: STANDARD_IA 
[11434 bytes of object data]
  • 响应示例

HTTP/1.1 200 OK
x-bce-request-id: 4db2b34d-654d-4d8a-b49b-3049ca786409
Date: Wed, 06 Apr 2016 06:34:40 GMT
ETag: "1b2cf535f27731c974343645a3985328"
x-bce-version-id:AJyQ0XRhboY=
Content-Length: 0
Connection: close
Server: BceBos
上一篇
Bucket相关接口
下一篇
GetObject