扶凯

取势 明道 优术

STF 协议 545 views

作者为 扶 凯 发表

简介


这是有关 STF 协议的描述(as Of Dec 1, 2011)

术语


Object(对象)

有关这个中的对象,我们需要从客户端的角度来看是文件或者是数据块,这个对象和一个对象 URL 所关联.对象必需属于一个桶(bucket).

Bucket(桶)

桶 (bucket) 是指一组逻辑的对象集合.桶(bucket)必须在对象存储之前被创建.

Entity(条目 or 实体)

实体(Entity)是指对象的物理复本.在这对象是一个文件/数据的逻辑表现,对象通常关联到多个实体.这样可以保证这个数据是安全的和 Mogilefs 中的份数是一样的。

Entities are sometimes referred to as "replicas".

Dispatcher

调度程序是面向客户的服务器用来和客户端交互.调度器会处理客户端来的连接,告诉它在那个后端的存储,取得和告知所需要的数据.

Storage

存储是指存放条目的设备.它会通过 HTTP 来和调度器所关联,来处理 GET/PUT/DELETE 的请求.

 

Client Protocol客户端协议


这是有关客户端的协议的内容.

创建一个 Bucket

要创建一个 Bucket ,只需要使用 HTTP 的 PUT 请求发送到服务器.

PUT /mybucket HTTP/1.0

如果正常的创建,会返回 HTTP status 201 的状态码.

如果已经存在,会返回 HTTP status 204 的状态码.

如果名字不能解析(or maybe you specified /bucket_name/object_name instead of /bucket_name),会返回 HTTP status 400 的状态码.

如果有其它的一些错误,会返回 HTTP status 500 的状态码.

删除一个桶( Bucket )

要删除一个 bucket, 只需要使用 HTTP 的 DELETE 请求发送到服务器.

DELETE /mybucket HTTP/1.0
… 可选的 header …

header 的相关选项:

X-STF-Recursive-Delete

如果设置, 涉及和这个桶中的对象都将被删除.

如果没有指定,这个桶会被删除,但相关的对象和实体并不会被删除.

成功删除将返回 HTTP 204 的状态.

如果不存在则返回HTTP 404 的状态.

如果任何其他错误会返回 HTTP 500 的状态.

创建一个对象( Object )

创建一个对象,只需要发送一个HTTP PUT请求

PUT /mybucket/foo/bar/baz/myobject.png HTTP/1.0
Content-Length: 9153
... 可选的 header ....
... 对象的数据 .... 

该 URL 的形式必须象 /bucket_name/object_name. 这个对象的存的内容需要放在 HTTP  request 的 body 中.

可选的 header 头可能是下列之一

X-STF-Replication-Count
指定这个对象应该有实体个数.
 
请注意成功创建对象不能保证很多实体在存储上STF 只会创建一个实体最小数量,然后要求后端的 worker 会创建剩余实体
 

若要控制创建初始创建对象的数量,可以看看 的对象数量看  X-STF-Consistency header.
 

X-STF-Consistency

指定本次请求需要创建的实体的数量

如果调度器在一次HTTP请求中创建多个实体失败整个动作被认为已经失败了.

可能会增加这个值,用来调整你设置的副本数量,但要注意增加这个数字使得每个对象创建请求花费更长的时间才能完成建议您保持此值相对小些

对象创建成功将返回 HTTP 201 的状态.

如果指定不存在返回 HTTP 500 的状态.

如果对象名的无法解析返回HTTP 400 的状态.

检索对象

检索对象应发送一个GET请求

GET /mybucket/foo/bar/baz/myobject.png HTTP/1.0
... optional headers ...

If-Modified-Since headers 是可以支持的.

如果你只是想检查对象是否存在也可以使用 HEAD 的方法.

检索成功后将返回HTTP状态200对象的内容.

如果指定不存在返回HTTP  500 的状态.

修改对象

修改一个对象应发送一个POST请求

POST /mybucket/foo/bar/baz/myobject.png HTTP/1.0
... optional headers ...

检索成功后将返回HTTP 204 的状态
如果指定不存在返回 HTTP 500 的状态.

© livedoor Co., Ltd.

来了就留个评论吧! 没有评论