# 云存储简介

# 基本功能

新浪云存储服务主要提供以下功能供开发者使用:

# 功能 描述
1 支持任何类型数据的上传和下载 文本、多媒体、日志、二进制等类型数据
2 元信息机制 开发者可以使用通用的和自定义的元信息机制来定义资源属性
3 容量无限制 对object的个数没有限制;云存储提供分片上传接口,可以实现T级超大文件的上传和下载
4 分片上传、断点下载功能 该功能在网络不稳定的环境下具有非常好的表现
5 兼容AmazonS3的RESTful风格的HTTP接口和多语言SDK及工具 了解RESTful的相关信息,可参考http://en.wikipedia.org/wiki/Representational_State_Transfer
6 签名认证方案 基于公钥和密钥的认证方案可适应灵活的业务需求
7 强大的ACL权限控制 开发者可通过ACL设置资源的权限(公开或私有),也可授权特定用户具有特定权限
8 静态网页托管 开发者可通过将静态页面上传至云存储空间中,并将其访问权限设置为公开读,即可实现静态网站的效果

# 基本概念

# bucket

云存储bucket可以看成是命名空间,其名称全局唯一,如果某个名称已创建,则其他开发者将无法再创建相同名称的bucket;开发者上传的任何数据必须是属于某个bucket。上传任何数据之前需先确认是否已经创建bucket。 有关bucket的命名限制,请参考约束与限制。

创建bucket有以下两种方式:

如果您的bucket名称为:my-bucket, 则可以通过如下方式访问资源:

  • https://my-bucket.sinacloud.net/path/to/my/file.txt
  • https://sinacloud.net/my-bucket/path/to/my/file.txt

访问链接推荐格式

推荐使用第一种方式https://my-bucket.sinacloud.net/path/to/my/file.txt访问。

# object

object是SCS中的基本存储实体,由Key(键)、Data(数据)及MetaData (元数据)组成。

  • Key(键):object的唯一标识。有关object的命名限制,请参考约束与限制。如: path/to/my/file.txt
  • Data(数据):object可支持文本、多媒体、二进制等任何类型的数据,开发者可以利用Object相关API实现上传、下载及获取object列表的功能。
  • MetaData (元数据):存储object的相关属性的描述性信息,为 key-value 组合。

# 签名

为提高用户使用的安全性,云存储服务支持通过使用用户签名来验证请求者的身份。了解详细信息,请参考《签名算法》

# ACL

ACL: 访问控制列表 (Access Control List) 云存储通过ACL实现资源的权限认证,开发者可以通过设置ACL来实现复杂的资源管理。 开发者通过使用API可以更新bucket或者object的ACL policy,有关ACL policy的详细说明请参考ACL的相关内容。

# 约束与限制

# 编码限制

  • bucket名称、object key、meta、ACL内容等只支持UTF-8编码
  • 访问资源的url要进行rawurlencode编码
  • object key除了/以外需要进行rawurlencode编码

# API限制

新浪云存储的API具有以下限制:

  • 自定义meta:x-amz-meta-* 最多20个
  • header 最大长度为8KB
  • bucket policyobject policy长度不超过4096字节

# 命名规则

API中的bucket和object的命名需符合以下规则:

# bucket命名

  • 云存储内全局唯一;
  • 由小写字母、数字及-组成,长度为6~63位;
  • 不能以数字、-开头;
  • 不能以-开头或结尾;
  • 或者使用域名的名命名规则,例如:xxx.foo.com.cn,方便绑定您的域名