本文主要面向新浪云存储服务的开发者,开发者可通过此文学习如何使用新浪云存储进行开发
新浪云存储,即SCS(Sina Cloud Storage),提供object网络存储服务,旨在利用新浪在分布式以及网络技术方面的优势为开发者提供安全、简单、高效的存储服务。
新浪云存储提供了一系列简单易用的RESTful API、SDK、工具和方案,使得开发者通过网络即可随时、随地存储任何类型的数据、进行安全分享及灵活的资源访问权限管理。
通过使用新浪云存储服务,开发者可以轻松地开发出扩展性强、稳定性好、安全快速的分布式网络服务;通过使用云存储服务提供的API、SDK及管理平台,开发者也可以迅速开发出适合各种业务的网络程序。
新浪云存储可以支持文本、多媒体、二进制等任何类型的数据,支持签名认证及ACL权限设置进行资源访问控制,开发者可以通过管理控制台直接进行上传、下载或通过RESTful API、Shell Tool、SDK、curl等方式实现上传、下载。
存储部署设计针对大陆互联网特点,数据和接入点部署在多个机房,覆盖网通、电信、移动等多家运营商。整个系统支持4个副本,可靠性达到99.999999999%。文件的多机房分发,一次上传保证各个运营商内都能快速访问。
新浪云存储服务主要提供以下功能供开发者使用:
# | 功能 | 描述 |
---|---|---|
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 | 功能完善的控制台 | 开发者可通过管理控制台对所有资源进行统一管理 |
9 | 静态网页托管 | 开发者可通过将静态页面上传至云存储空间中,并将其访问权限设置为公开读,即可实现静态网站的效果 |
云存储bucket可以看成是命名空间,其名称全局唯一,如果某个名称已创建,则其他开发者将无法再创建相同名称的bucket;开发者上传的任何数据必须是属于某个bucket。上传任何数据之前需先确认是否已经创建bucket。 有关bucket的命名限制,请参考 #约束与限制。
创建bucket有以下两种方式:
通过控制台创建
通过使用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
object是SCS中的基本存储实体,由Key(键)、Data(数据)及MetaData (元数据)组成。
指object的唯一标识. 有关object的命名限制,请参考#约束与限制. 如: path/to/my/file.txt
object可支持文本、多媒体、二进制等任何类型的数据,开发者可以利用Object相关API实现上传、下载及获取object列表的功能。
存储object的相关属性的描述性信息,为 key-value 组合
为提高用户使用的安全性,云存储服务支持通过使用用户签名来验证请求者的身份。了解详细信息,请参考《签名算法》
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中的bucket和object的命名需符合以下规则:
bucket命名:
云存储内全局唯一;
由小写字母、数字及“-”组成,长度为6~63位;
不能以数字、‘-’开头;
不能以‘-’开头或结尾;
或者使用域名的名命名规则,例如:xxx.foo.com.cn,方便绑定您的域名
object命名:
key长度不超过128个字节;
key除了“/”以外需要进行rawurlencode编码