S3的RESTful接口特点总结

S3的RESTful接口特点总结

  • 删除桶
1
2
DELETE /
Host bucket.endpoint

分析:request无必要参数

  • 删除对象
1
2
DELETE /obj
Host bucket.endpoint

分析:request无必要参数

  • 列举桶中对象
1
2
GET /  | GET /?xx
Host bucket.endpoint

分析:request后面有可选参数

  • 删除多个对象(批量删)
1
2
POST /?delete
Host bucket.endpoint

分析:request参数中带delete

  • 上传对象

PUT 方式

1
2
PUT /obj
Host bucket.endpoint

分析:request无必要参数

POST 方式

1
2
POST /
Host bucket.endpoint

分析:待定,暂不考虑

COPY 方式

1
2
3
PUT /obj
Host bucket.endpoint
x-amz-copy-source /srcbucket/srcobj

分析:含有x-amz-copy-source选项,mv是会多一个Delete

  • 下载对象
1
2
GET /obj
Host bucket.endpoint

分析:request无必要参数

  • 分块上传
1
2
PUT /obj?partNumber=xx&uploadId=xx
Host bucket.endpoint

分析:可以用带有uploadId参数来进行区分



Other


  • 删除Bucket的一些配置
1
2
DELETE /<bucket-name>?someconfopt
Host bucket.endpoint

是可选的,有一些要带这个,只要不是/则说明都不是删除桶

  • 获取Bucket的一些配置
1
2
GET /?someconfopt
Host bucket.endpoint

需要区别于列举桶中对象的请求

  • HEAD 判断bucket是否存在和是否有访问权限
1
2
HEAD /
Host bucket.endpoint

HEAD标志

  • 设置Bucket的一些配置 (对象也是一致)
1
2
PUT /?someconfopt
Host bucket.endpoint

只要不是/则说明都不是创建桶

  • 创建桶
1
2
PUT /
Host bucket.endpoint

一定是/

  • 获取对象属性
1
2
GET /obj?attr
Host bucket.endpoint

后面有参数

  • HEAD返回对象元数据信息
1
2
HEAD /obj
Host bucket.endpoint

Head 标志,不是/

  • 终止分段上传 (分段上传的都有uploadId这个参数)
1
2
DELETE /obj?uploadId=xxx
Host bucket.endpoint

需要用uploadId来区别其他的DELETE操作,比如区别删除对象操作

Ceph Admin API 管理接口

  • 创建用户

    PUT /admin/user?format=json&uid=&display-name=