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- header 用户自定义的,以x-xiaomi-为前缀的头部信息 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="}

results matching ""

    No results matching ""