# 云存储简介
# 基本功能
新浪云存储服务主要提供以下功能供开发者使用:
# | 功能 | 描述 |
---|---|---|
1 | 支持任何类型数据的上传和下载 | 文本、多媒体、日志、二进制等类型数据 |
2 | 元信息机制 | 开发者可以使用通用的和自定义的元信息机制来定义资源属性 |
3 | 容量无限制 | 对object的个数没有限制;云存储提供分片上传接口,可以实现T级超大文件的上传和下载 |
4 | 分片上传、断点下载功能 | 该功能在网络不稳定的环境下具有非常好的表现 |
5 | 兼容AmazonS3的RESTful风格的HTTP接口和多语言SDK及工具 | 了解RESTful的相关信息,可参考http://en.wikipedia.org/wiki/Representational_State_Transfer (opens new window) |
6 | 签名认证方案 | 基于公钥和密钥的认证方案可适应灵活的业务需求 |
7 | 强大的ACL权限控制 | 开发者可通过ACL设置资源的权限(公开或私有),也可授权特定用户具有特定权限 |
8 | 静态网页托管 | 开发者可通过将静态页面上传至云存储空间中,并将其访问权限设置为公开读,即可实现静态网站的效果 |
# 基本概念
# bucket
云存储bucket可以看成是命名空间,其名称全局唯一,如果某个名称已创建,则其他开发者将无法再创建相同名称的bucket;开发者上传的任何数据必须是属于某个bucket。上传任何数据之前需先确认是否已经创建bucket。 有关bucket的命名限制,请参考约束与限制。
创建bucket有以下两种方式:
- 通过控制台(https://scs.sinacloud.com (opens new window))创建
- 通过使用put bucket API创建
如果您的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 policy
和object policy
长度不超过4096字节
# 命名规则
API中的bucket和object的命名需符合以下规则:
# bucket命名
- 云存储内全局唯一;
- 由小写字母、数字及
-
组成,长度为6~63位; - 不能以数字、
-
开头; - 不能以
-
开头或结尾; - 或者使用域名的名命名规则,例如:
xxx.foo.com.cn
,方便绑定您的域名