FDS Restful API
Put object related api supported by FDS
Version: 1.0.0
/{bucketname}/{objectname}
PUT
Summary:
上传object,如果有同名Object,将会覆盖
Description:
必须拥有Bucket的WRITE
权限才能执行该操作
Parameters
Name | Located in | Description | Required | Schema |
---|---|---|---|---|
bucketname | path | Bucket名字 | Yes | string |
objectname | path | 上传的Object名字 | Yes | string |
authorization | header | 认证信息,计算方式参考签名认证相关文档 | No | string |
Date | header | 请求时间 | Yes | string |
content-type | header | Object的content-type | No | string |
x-xiaomi-meta- | header | 用户自定义的,以x-xiaomi-meta- 为前缀的头部信息 |
No | string |
expires | query | 如果上传成功,返回的签名的过期时间戳(UTC),单位毫秒,默认30天 | No | string |
body | body | Object内容 | Yes | binary |
Responses
Code | Description | Schema |
---|---|---|
200 | 请求成功 | PutObjectResult |
Models
PutObjectResult
Name | Type | Description | Required |
---|---|---|---|
bucketName | string (int32) | Bucket名字 | No |
objectName | string | Object名字 | No |
accessKeyId | string | 签名用的accessKeyId | No |
signature | string | 用于下载这个Object的签名 | No |
expires | string | 签名失效时间戳(UTC),单位毫秒,默认有效时间30天 | No |
命令行示例
# 上传tests/test.txt到fds-demo
curl -v -X 'PUT' 'http://cnbj0.fds.api.xiaomi.com/fds-demo/tests/test.txt' \
> -H 'content-type: application/octet-stream' \
> -H 'authorization: Galaxy-V2 541xxx45:LepxxxmQ=' \
> -H 'date: Mon, 27 Feb 2017 09:40:11 GMT' \
> -d 'This is a test'
* Hostname was NOT found in DNS cache
* Trying 111.206.200.99...
* Connected to cnbj0.fds.api.xiaomi.com (111.206.200.99) port 80 (#0)
> PUT /fds-demo/tests/test.txt HTTP/1.1
> User-Agent: curl/7.35.0
> Host: cnbj0.fds.api.xiaomi.com
> Accept: */*
> content-type: application/octet-stream
> authorization: Galaxy-V2 541xxx45:LepxxxmQ=
> date: Mon, 27 Feb 2017 09:40:11 GMT
> Content-Length: 14
>
* upload completely sent off: 14 out of 14 bytes
< HTTP/1.1 200 OK
* Server Tengine is not blacklisted
< Server: Tengine
< Date: Mon, 27 Feb 2017 09:41:12 GMT
< Content-Type: application/json
< Content-Length: 152
< Connection: keep-alive
< Access-Control-Allow-Credentials: true
< Access-Control-Max-Age: 1728000
< Access-Control-Allow-Methods: GET, POST, PUT, HEAD, DELETE, OPTIONS
< Access-Control-Allow-Headers: DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,Content-MD5
< Access-Control-Expose-Headers: content-md5, upload-time, x-xiaomi-meta-content-length
<
* Connection #0 to host cnbj0.fds.api.xiaomi.com left intact
{"accessKeyId":"54xxx45","bucketName":"fds-demo","expires":1490780472318,"objectName":"tests/test.txt","signature":"6WxxxQ="}
# 上传tests/test.txt到fds-demo,并且
# 指定 content-type
# 指定object为所有人可读
curl -v -X 'PUT' 'http://cnbj0.fds.api.xiaomi.com/fds-demo/tests/test.txt' \
> -H 'content-type: application/json' \
> -H 'authorization: Galaxy-V2 54xxx45:+MxxxN0=' \
> -H 'x-xiaomi-meta-acl: PUBLIC_READ' \
> -H 'date: Mon, 27 Feb 2017 09:58:15 GMT' \
> -d '{}'
* Hostname was NOT found in DNS cache
* Trying 111.206.200.99...
* Connected to cnbj0.fds.api.xiaomi.com (111.206.200.99) port 80 (#0)
> PUT /fds-demo/tests/test.txt HTTP/1.1
> User-Agent: curl/7.35.0
> Host: cnbj0.fds.api.xiaomi.com
> Accept: */*
> content-type: application/json
> authorization: Galaxy-V2 54xxx45:+MxxxN0=
> x-xiaomi-meta-acl: PUBLIC_READ
> date: Mon, 27 Feb 2017 09:58:15 GMT
> Content-Length: 2
>
* upload completely sent off: 2 out of 2 bytes
< HTTP/1.1 200 OK
* Server Tengine is not blacklisted
< Server: Tengine
< Date: Mon, 27 Feb 2017 09:59:07 GMT
< Content-Type: application/json
< Content-Length: 152
< Connection: keep-alive
< Access-Control-Allow-Credentials: true
< Access-Control-Max-Age: 1728000
< Access-Control-Allow-Methods: GET, POST, PUT, HEAD, DELETE, OPTIONS
< Access-Control-Allow-Headers: DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,Content-MD5
< Access-Control-Expose-Headers: content-md5, upload-time, x-xiaomi-meta-content-length
<
* Connection #0 to host cnbj0.fds.api.xiaomi.com left intact
{"accessKeyId":"54xxx45","bucketName":"fds-demo","expires":1490781547554,"objectName":"tests/test.txt","signature":"MuxxxoQ="}