Appearance
PutObject
接口描述
此接口用于向指定的Bucket上传一个文件,请求者必须具有Write权限。在PutObject前需要确保对应的Bucket已经存在,FOS支持Object文件的长度范围是0Byte-5GB。如果需要上传大于5GB的文件,请参考分块上传指南。
请求(Request)
请求语法
PUT /<BucketName>/<ObjectName> HTTP/1.1
Host: fos.flymeyun.com
Date: <Date>
Content-Type: text/plain
Content-Length: <Content_Length>
请求参数
无特殊参数
请求头域
名称 | 类型 | 描述 | 是否必需 |
---|---|---|---|
Cache-Control | String | 下载Object的Cache设置,常见的可取值为private、no-cache、max-age、must-revalidate | 否 |
Content-Disposition | String | 设置浏览器是否下载,可取值为inline、attachment; filename="download.txt" | 否 |
Content-MD5 | String | RFC2616定义的HTTP请求内容的MD5摘要,可以通过携带该字段来验证保存在FOS侧的文件和用户预期的文件是否一致。 | 否 |
Expires | String | 用于设置下载Object时的缓存失效时间,如果不做时间设置,FOS则会默认设置缓存失效时间为三天。 | 否 |
x-fos-meta-* | String | 用户自定义的meta | 否 |
x-fos-content-sha256 | String | 通过携带该字段来验证保存在FOS侧的文件和用户预期的文件是否一致,sha256的校验准确性更高。所传数据的sha256值必须与此匹配,否则PutObject失败 | 否 |
响应头域(Response)
响应头域
名称 | 类型 | 描述 |
---|---|---|
ETag | String | Object的HTTP协议实体标签 |
注意事项
- Content-Length是必须参数,如果请求者指定的Content-Length比实际请求体(Object的实际数据)长度小,FOS只保存Content-Length指定长度的数据,多的这部分数据直接废弃;相反,如果Content-Length的长度大,FOS将一直等待请求者上传数据,直到超时。
- 上传的Object,如不指定Content-Type,FOS会自动识别设置合适的Content-Type,若无法识别则默认为application/octet-stream
- FOS目前不支持Version,如果请求者重复Put一个Object,之前上传的数据将被覆盖。
- 由于FOS本身是一个(<Key>,<Value>)的存储系统,所以原则上并不会存在“文件夹”的概念。若需要按照文件夹来划分,可以把 “/” 符号作为分隔符模拟文件夹。例如上传object为 “work/test/123.txt”,控制台显示时会根据“/”自动切分,创建work文件夹下面的test文件夹和test文件夹下的123.txt文件。
响应参数
无
示例
请求示例
PUT /BucketName/ObjectName HTTP/1.1
Host: fos.flymeyun.com
Date: Wed, 06 Apr 2016 06:34:40 GMT
Content-Type: text/plain
Content-Length: 11434
[11434 bytes of object data]
响应示例
HTTP/1.1 200 OK
x-fos-request-id: 4db2b34d-654d-4d8a-b49b-3049ca786409
Date: Wed, 06 Apr 2016 06:34:40 GMT
ETag: "1b2cf535f27731c974343645a3985328"
Content-Length: 0
Connection: close