FDS Restful API

Add/Delete bucket acl related api supported by FDS

Version: 1.0.0

/{bucketname}


PUT

Summary: 修改Bucket的ACL

Description: 只有Bucket的拥有者才能执行这个操作

Parameters

Name Located in Description Required Schema
bucketname path Bucket名字 Yes string
authorization header 认证信息,计算方式参考签名认证相关文档 Yes string
Date header 请求时间 Yes string
acl query 表示该请求是为Bucket的ACL操作,值为空 Yes string
action query 执行的操作,如果是delete,表示删除ACL,缺省为添加ACL No string
body body 需要修改的 ACL 信息 Yes AccessControlPolicy

Responses

Code Description
200 请求成功

Models


AccessControlPolicy

Name Type Description Required
owner OwnerBean No
accessControlList [ GrantBean ] No

GrantBean

Name Type Description Required
grantee GranteeBean No
permission string 权限描述,包括READ, WRITE, READ_OBJECTS, FULL_CONTROL, SSO_WRITE No
type string 授权对象类型,包括USER, GROUP No

GranteeBean

Name Type Description Required
id string 用户ID No

OwnerBean

Name Type Description Required
id string 所有者ID No
displayName string 所有者名称 No

命令行示例

# 给demo-user授予fds-demo Bucket的读取所有object的权限
curl -v -X 'PUT' 'http://cnbj0.fds.api.xiaomi.com/fds-demo?acl' \
> -H 'content-type: application/json; charset=UTF-8' \
> -H 'authorization: Galaxy-V2 541xxxx45:64xxxE=' \
> -H 'date: Thu, 23 Feb 2017 10:47:34 GMT' \
> -d '{"owner":{"id":"541xxxx45"},"accessControlList":[{"grantee":{"id":"demo-user"},"permission":"READ_OBJECTS","type":"USER"}]}'
* 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?acl HTTP/1.1
> User-Agent: curl/7.35.0
> Host: cnbj0.fds.api.xiaomi.com
> Accept: */*
> content-type: application/json; charset=UTF-8
> authorization: Galaxy-V2 541xxxx45:64xxxE=
> date: Thu, 23 Feb 2017 10:47:34 GMT
> Content-Length: 123
> 
* upload completely sent off: 123 out of 123 bytes
< HTTP/1.1 200 OK
* Server Tengine is not blacklisted
< Server: Tengine
< Date: Thu, 23 Feb 2017 10:48:18 GMT
< Content-Length: 0
< 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
# 删除之前添加的ACL
curl -v -X 'PUT' 'http://cnbj0.fds.api.xiaomi.com/fds-demo?acl&action=delete' \
> -H 'content-type: application/json; charset=UTF-8' \
> -H 'authorization: Galaxy-V2 541xxxx45:E8AxxxxzT0=' \
> -H 'date: Thu, 23 Feb 2017 11:13:34 GMT' \
> -d '{"owner":{"id":"541xxxx45"},"accessControlList":[{"grantee":{"id":"demo-user"},"permission":"READ_OBJECTS","type":"USER"}]}'
* 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?acl&action=delete HTTP/1.1
> User-Agent: curl/7.35.0
> Host: cnbj0.fds.api.xiaomi.com
> Accept: */*
> content-type: application/json; charset=UTF-8
> authorization: Galaxy-V2 541xxxx45:E8AxxxxzT0=
> date: Thu, 23 Feb 2017 11:13:34 GMT
> Content-Length: 123
> 
* upload completely sent off: 123 out of 123 bytes
< HTTP/1.1 200 OK
* Server Tengine is not blacklisted
< Server: Tengine
< Date: Thu, 23 Feb 2017 11:14:15 GMT
< Content-Length: 0
< 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

results matching ""

    No results matching ""