This project is read-only.

开发者手册

该手册描述了如何使用数据存储平台提供的Open Cloud Storage API 以实现应用数据的远程存储。Open Cloud Storage API提供了RESTful 方式的接口用以访问数据存储平台中的数据. 通过该接口,您可以从互联网上的任何地方存储,分享和管理你的数据。

目录

  1. API概述
  2. 对象模型
  3. 如何使用API
  4. 鉴权
  5. 访问控制
  6. 约束

API概述

对象模型

存储单元由容器,对象组成,容器名在存储服务中是唯一的,唯一标识一个容器,每个容器有版本策略,可以设置元数据。对象是隶属于容器,对象URI唯一标识一个对象,可以设置对象的元数据。

用户可以申请一个或者多个接入码,用来访问容器;通过ACL设置,允许多个接入码(AccessKeyID)访问一个容器,也允许一个接入码访问多个容器。

如何使用API

鉴权

AccessKey:用户获得的数据存储平台的访问授权码,用户可以申请一个或者多个授权码,系统同时生成相应的AccessSecureKey.

Signature:是对请求操作以AccessSecureKey(用户接入密码)为密钥,使用HMAC-SHA1加密算法加密后的字符串,算法如下:

Signature=Base64(HMAC-SHA1(UTF8(StringToSign)))

 StringToSign = Operate + "\n" +
                               ContainerName +"\n"+ 
                               ObjectURI +"\n"+
                               AccessSecureKey + "\n" +
                               Date;

Operate:指接口操作:

对REST接口而言,即为http请求操作的VERB,如: "PUT","GET","DELETE"等字符串。

如果请求操作无ContainerName或者ObjectURI,为空。

以创建容器接口为例:

REST如:StringToSign = "PUT"+"\n" +
                                                   "TestContainer"+"\n" + 
                                                   "\n" +
                                                   "/KTMTMDGDS"+"\n" +
                                                   "Sun, 06 Nov 2010 08:49:37 GMT";

访问控制

  • 允许一个用户拥有对多个授权码
  • 容器ACL
    1. 谁(指授权码)创建,谁拥有完全控制权限,该接入码是容器的owner
    2. 容器的权限:只读,只写,读写(读,写,删除,授权)
      • 授予接入码只读权限是指:能读这个容器下的所有对象,没有其他权限
      • 授予接入码只写权限是指:能写这个容器下的所有对象,没有其他权限
      • 授予接入码读写权限是指:能读,写这个容器下的所有对象,没有其他权限
    3. 容器的拥有者可以授权其他授权码(无论之本用户,或其他用户)来访问容器;包含权限:无权限(用于取消权限),只读;只写,读写
  • 对象ACL
    1. 对象的ACL继承容器的ACL
    2. 谁创建对象,谁对该对象具有完全控制权限,但对象所在的容器的拥有者具有对所有对象的完全控制权限
    3. 对象的权限包含:只读,只写,读写,读写删,完全控制权限(读写删授权)
      • 授予接入码只读权限是指:能读的该对象,没有其他权限
      • 授予接入码只写权限是指:能写的该对象,没有其他权限
      • 授予接入码读写权限是指:能读的该对象,写这个容器下的该对象,没有其他权限
      • 授予接入码读写删权限是指:能读的该对象的该对象,写该对象,能删除该对象的该对象,没有其他权限
    4. 对象的拥有者可以对其他接入码授权(无论之本用户,或其他用户)来访问对象;包含权限:无权限(用于取消权限),只读;只写,读写,读写删
    5. 其作用域在对象级别上,如果存在多版本的对象,则对该对象的所有版本均有效

约束

时间格式

支持HTTP1.1格式

Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123

Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036

Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format

容器名和对象URI

ContainerName:唯一标识一个容器,在系统下唯一,长度为1-64字节范围内,允许字符以字母开头,字母,数字,下划线_ 组成,不允许联系两个下划线。

ObjectURI:唯一标识一个对象,在Container唯一,长度为1-256字节返回内,遵从URI的命名规则,但不能为URL的特殊字符,如:?,&等。.

Last edited Nov 19, 2010 at 5:24 PM by tadf, version 6

Comments

No comments yet.