面向对象存储oos教程说明精编版
面向对象存储o o s教程
说明
文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)
O O S客服脚本
1、OOS基本知识
什么是OOS
面向对象存储(Object-Oriented Storage,OOS)是中国电信为客户提供的一种海量、弹性、高可用、高性价比的存储服务,是一种开放式的存储服务。
OOS基本概念
面向对象存储的主要概念有:Account(账户)、Service(服务)、Object (对象)和Bucket(对象容器)。它们之间的关系如下图所示。在使用OOS之前,首先需要在注册一个账号(Account),注册成功之后,OOS会为该账号提供服务(Service),在该服务下,用户可以创建1个或多个对象容器(Bucket),每个对象容器中可以存储不限数量的对象(Object)。
Account
在使用OOS之前,需要在注册一个账号(Account)。注册时邮箱、密码和联系方式、用户名是必填项。注册成功之后,用户可以用该账号登录并使用OOS 服务。
Service
Service是OOS为注册成功的用户提供的服务,该服务为用户提供弹性可扩展的存储空间及上行和下行流量。用户可以对存储空间和能力进行管理,例如,文件的上传下载、文件的保存、存储空间的访问控制等。
Bucket
Bucket是存储Object的容器。面向对象存储的每个Object都必须包含在一个Bucket中。Bucket不能嵌套,每个Bucket中只能存放Object,不能再存放Bucket。
每个用户最多可以建立10个Bucket,并且在创建Bucket时需要设定其操作权限。用户只有对Bucket拥有相应的权限,才可以对其进行操作,这样保证了数据的安全性,防止非授权用户的非法访问。
Bucket的命名规范如下:
对象容器(Bucket)的命名规范是:
Bucket名称必须全局唯一
Bucket名称长度介于3到63字节之间
Bucket名称可以由一个或者多个小节组成,小节之间用点(.)隔开
各个小节需要:只能包含小写字母、数字和短横线(-)
必须以小写字母或者数字开始
必须以小写字母或者数字结束
Object
用户存储在OOS上的每个文件都是一个Object。文件可以是文本、图片、音频、视频或者网页。OOS支持的单个文件的大小从1字节到5T字节。
用户可以上传、下载、删除和共享Object。此外用户还可以对Object的组织形式进行管理,将Object移动或者复制到目标目录下。
1.3OOS有什么特点
(1)弹性扩展,按需付费
对用户来说,OOS是一种低成本的存储资源,并且可以无限扩容,用户只需根据所使用的存储量进行付费即可,节约了成本。
(2)安全可靠
OOS采用多级加密数据,对用户数据进行分片加密保存,保证用户数据的安全性。
(3)性能可靠
OOS采用高可用的服务集群及动态负载均衡,保证用户顺利度过访问高峰。(4)快速部署,便捷接入
用户只需在天翼云网站注册即可使用OOS服务,部署便捷。同时,OOS采用统一的应用程序编程接口为用户访问OOS资源提供了便捷的接入通道。
OOS适合哪方面的应用
OOS主要适合以下类型的应用:
(1)企业邮件、财务数据的存储、备份和归档。
(2)交通录像、监控录像、呼叫中心的服务录音、档案管理、信息存储、网站托管服务等。
(3)互联网在线视频、网络游戏、电子商务、门户及社交网站类应用的文件、音视频、图片存储。
(4)中小型企业的静态网站托管。
OOS适合存储哪些文件
可对OOS的数据做哪些操作
1)创建、查看、罗列、删除Bucket。
2)修改、获取Bucket的访问权限。
3)上传、查看、罗列、删除Object。
4)访问时支持If-Modified-Since和If-Match等HTTP参数。
如何订购OOS
您只需在天翼云官方网站上注册账号即可使用OOS服务,进入【产品中心】,选择【对象存储】,点击【我要开通】,即可收到开通成功的短信确认。进入控制台后即可使用oos。
OOS怎么收费,有哪些计费项
收费项包括:存储容量、流出流量和请求次数。
1)存储容量计费:按用户数据占用的存储空间容量收取费用;
2)流出流量计费:按用户存储数据被调用或下载产生的流量收取费用;
3)请求次数计费:按照各种请求的次数收取费用。
扣费方式:按天扣费,每晚12:00按用户的使用量进行扣费。
欠费说明:OOS为每位用户提供一定的信用额度,当您处于欠费状态,但未超过信用额度时,OOS会发邮件提醒您进行充值。当您欠费金额超过信用额度时,若您24小时之内仍未进行充值,OOS服务将自动停止。而您所占用的存储空间的这部分资源仍会继续按日扣费,因此欠费余额会累计。您可以在30天内充值补足欠费后,服务会自动开启,可以继续使用。欠费超过30天,将视为您主动放弃OOS存储服务,存储空间将被回收,存储空间内的数据会被清理,数据不可恢复。
价格列表
容量价格
请求次数标准
数据访问方式有哪些
1)通过OOS门户进行访问;
2)通过Http REST API接口进行访问;
3)通过OOS SDK进行编程;
4)通过OOS备份客户端进行访问;
5)通过OOS推荐的第三方工具(如webdrive,s3fs等)进行访问;
OOS对文件格式有无要求
对文件格式没有要求
OOS安全性怎么保障
1)在用户访问层面,所有针对OOS的数据请求都需要进行签名验证,OOS提
供全方位的访问控制策略,使对象的拥有者对该对象有灵活的访问控制权。
2)在数据传输层面,不论是通过Web门户还是REST接口,用户的数据访问和操作都可以通过HTTPS协议进行,以确保数据传输中没有安全死角。
3)在数据存储层面,OOS将用户数据自动切片,进行分布式保存,并且对每片数据进行签名,即使数据被盗,没有用户的账号信息依然无法对数据进行破解,这样就充分保证了数据在存储层面的安全性。
4)在OOS系统的运维层面,通过利用中国电信的“虚拟云桌面”技术,运维人员无法直接访问生产系统,而必须一个可录像的“虚拟桌面”才能访问,运维人员的一举一动都将被记录在案。
5)在数据中心的运维层面,中国电信具备全球最先进的数据中心管理和运营能力。OOS部署在8级抗震、一级耐火、一级防水、通过ISO27001认证的的数据中心内部,与中国电信通信枢纽数据中心(武警守卫)同级别,具备完善的门禁制度、人员访控制度、设备巡检制度,确保物理层面的万无一失。
OOS试用时间多长
我们通过给客户提供信用额的方式让用户免费试用OOS,试用时间不受限制,直到用户消费完信用额度为止,信用额度的消费跟OOS计费方式相同。目前的初始信用额度是100元。
OOS与自建服务器存储对比
(1)弹性扩展
云存储按使用量计费,用户无需考虑由于业务需求的增长而扩充初期投资成本。
(2)降低成本
使用OOS,您可以根据业务需求确定资源投入,避免投资和运营成本(电费、维护成本等)浪费。
(3)安全可靠
云存储通过以下几种方式来保证数据安全:
通过SSL加密技术和MD5校验技术,保障数据传输的安全
通过数据自动切片、分布保存、每片签名等技术,保障数据存储的安全
通过用户鉴权、ACL访问控制等方式,保障数据使用的安全
通过7*24的专业运维团队、原厂的金牌服务,保障数据运维的安全
自建存储需要开发者自己从技术角度去实现安全防护,比如防火墙配置、加密技术等,对开发者要求较高,而且容易出现安全漏洞。而OOS有专业的技术安全团队进行安全防护,同时运维团队7*24小时的安全监控也能及时得弥补安全漏洞。
2、OOS FAQ
OOS API文档“Date”字段的GMT格式说明
在OOS API文档中,使用到“DATE”表示时间的字段,必须为中支持的GMT 格式。
有四种格式:
EEE, d MMM yyyy HH:mm:ss 'GMT'
EEE, d MMM yyyy HH:mm:ss Z
EEE, d MMM yyyy HH:mm:ss 'GMT'Z
EEE, d MMM yyyy HH:mm:ss z
OOS是否支持断点续传功能
支持,断点续上传和断点续下载都支持。在GET请求中添加range参数即可支持标准的断点续传逻辑。使用multipart功能,可以实现分段上传。
OOS是否支持分块传输编码的请求
不支持,HTTP协议有一种分块传输编码的机制(Chunked Transfer Encoding),即一个HTTP消息可以分成多个部分进行传输。它对HTTP请求和HTTP响应都是适用的。出于安全考虑,OOS不支持这种分块传输编码的请求。如何获取OOS文件的访问地址
1)请确定bucket开通时设置权限为公有或只读权限,如为私有读写则需要在URL后加入加密串获取,详细匹配方式见中<访问控制篇>;
2)object的外链地址(访问地址)构成规则如下:
3)例如:创建了一个名称为“yunying"的bucket,且权限设置为“公有”
在文件夹“3”中,上传一个名为“"文件;
其object的外链地址为:
OOS下载有峰值吗,如何收费
OOS上传或下载不设峰值,没有流量、带宽、并发链接的限制,按客户实际使用量收费,每日将对前一天消费情况进行核算扣费。
能否邦定自己的域名,而不仅仅通过访问
CNAME方法:如您的bucket 名为cloudstorage,您的objcet "image/"
OOS可以限制ip或者域名访问吗
可以限制ip和域名访问,配置bucket 的policy即可。
存储在OOS上的文件,如何设置防盗链功能
配置bucket 的policy即可,网站上有示例,参见:
。
OOS不想让其它人访问,那有什么办法能实现么
可以把bucket设置为私有,或者配置Policy,限制ip或域名访问。
OOS存储文件,能为多个用户设置访问权限吗
OOS目前不支持针对文件进行多用户访问权限的设置。
OOS的API怎么用
云服务器与OOS 上传文件,流量与请求次数是否收费
目前是计费的,后续的新版本会是免费的。
OOS API返回结果没有JSON格式的吗
没有JSON格式的,返回结果是XML格式的。
如何进行大文件上传
1)有开发能力的用户可以通过OOS API或SDK来操作。
5GB以下文件或网络速度好的用户,可以使用PUT object 。
5GB以上或网络速度不好并且文件在100M以上的用户推荐使用Multipart Upload
2)无开发基础客户可下载OOS客户端,请参考
object怎么改名
两种方法可以实现:
1. 您可以删除原来的文件,上传新命名的文件也能达到改名的效果。
2. 您可以通过copy objcet 源文件复制成为一个新名字的文件,再把源文件删除即可。
OOS中可以重命名bucket吗
OOS暂不支持bucket的重命名,若需要其他名称,建议您重新创建bucket。
2.17 OOS是否支持object迁移
OOS 提供了COPY objcet的功能,您可以将原bucekt下的文件COPY到新bucket即可。
java sdk中的 OOSclient对象是否是线程安全的
是线程安全的
OOS是否支持多个object打包下载
目前OOS不支持多个object打包下载。
OOS返回的文件网络路径,域名都是ctyun的吗
OOS中url中可以实现授权文件上传吗
目前没有此功能
如何使用JAVA SDK源代码
网站上提供了sdk的源码下载,可以将其导入的Eclipse等IDE工具中。
为什么bucket下的文件都删除了,却还能查看到占用的空间,并且bucket也删除不了
请确认您是否使用过UploadMultipart的功能,如使用过,建议您可以通过UploadsListMultipart查看是否存在已经被初始化但是未被Complete或者Abort的MultipartUpload的part。如果有,则需再执行AbortMultipartUpload (来终止上次操作的MultipartUpload,该命令会自动删除未完成的part)。因为未完成合并的part,无法形成objcet, 所以通过object list是看不到这些残留的part,但这些都会产生占用空间量。
OOS支持bucket作为三级域名的访问方式吗
支持,三级域名外链访问方式:
注:如果你的bucket里面有下划线"_",那么由于不符合WWW规范,无法做为三级域名使用,只能使用普通外链访问方式。
OOS中有好几个bucket,是否可以实现不同域名cname到不同bucket,如何操作
可以,配DNS就可以,CNAME方法:
例如:您的bucket 名为cloudstorage,您的objcet 为"image/"
访问地址就可以映射:
什么是API密钥
OOS的API密钥是用来请求OOS资源时做验证用的,您可以在OOS账户中心的密钥管理模块查看和修改。
可以绑定域名吗
可以
是否防盗链
有,您可以通过配置Bucket的Policy(安全策略)来实现,具体参见
OOS能否解决互联互通问题
1、OOS暂不支持互联互通,但支持电信/联通双线网络;
2、后期会解决互联互通问题。
存储容量上限
一个Object最大支持5T,您也可以通过分段上传来实现超大文件的上传,文件大小没有限制。
是否支持压缩图片
OOS目前暂不支持图片压缩,后期会考虑提供支持。
是否支持批量上传
您可以再OOS自服务门户的控制台中进行文件批量上传,也可以通过编写程序或使用第三方支持工具(s3fs,crOOSftp等)实现批量上传。
OOS服务是否限制用户的并发请求数
OOS不会限制用户的并发请求数
OOS接口能否在pad,android 使用
OOS提供基于HTTP的的标准REST接口,可以跨平台使用。
OOS是否可以挂载到云服务器当硬盘用
可以,您可以通过第三方软件工具s3fs将OOS挂载到云服务器。
最小计费单位
OOS的最小计量单位是“分”
OOS支持FTP吗
支持,您可以使用第三方工具crOOSFtp来访问OOS;
oos数据怎么备份
OOS底层默认对数据进行三次备份,您也可以通过将数据迁移到不同的bucket来进行备份;
支持的开发规范接口规范
OOS采用兼容亚马逊S3的应用程序编程接口,支持通过基于Http的REST API来访问OOS服务。详情请参见OOS开发者文档;
云存储计算器服务
网站上有:
3、工具下载地址
OOS客户端工具
论坛上:
4、OOS的错误响应
当用户访问OOS出现错误时,OOS会返回给用户相应的错误码和错误信息,便于用户定位问题,并做出适当的处理。
错误代码列表
5、开放接口规范
、
GetService(ListBucket)
对于做Get请求的服务,返回请求者拥有的所有Bucket,其中“/”表示根目录。
该API只对验证用户有效,用户需要使用有效的Key ID在OOS中注册,匿名用户不能执行该操作。
请求示例
Object的操作有:、、、。
PutObject
Put Object用于上传文件。
请求示例
在名叫myBucket的bucket中,存储一张叫的图片。
返回示例
如果Head 中没有加入Content length 参数,会返回411 Length Require d 错误。
返回示例:
如果试图添加的Object 所在的Bucket 不存在,返回404 Not Found 错
误。
如果试图添加的Object 所在的Bucket 没有访问权限,返回403 Forbidde n 错误。
注意:如果试图添加的Object 的同名文件已经存在,并且有访问权限。新添加的文件将覆盖原来的文件,成功返回200 OK 。
如果添加文件长度超过5T ,返回错误消息400 Bad Request 。
如果在Put Object 的时候,携带以x-amz-meta-为前缀的参数,则视为us er meta ,比如x- amz-meta-location 。一个Object 可以有多个类似的参数,但所有的user meta 总大小不能超过2k 。
如果传入的Object key 长度大于1023,返回400 Bad Request 。
GetObject
用于获取某个Object ,此操作要求用户对该Object 有读权限。
下面示例中返回对象
HTTP/ 100 Continue
HTTP/ 200 OK x-amz-request-id: 0A49CE4060975EAC Date: Mon, 03 Sep 2012 17:50:00 GMT
返回示例
如果文件不存在返回404 Not Found 错误。
错误示例:
GetObject 时可以设定文件传送范围,在头中以Range 设定。
例如,设定 bytes=0-9,表示传送第0到第9这10个字符。
注意:在返回消息中会包含整个文件的长度和此次返回的范围,例如:Con tent-Range: bytes 0-9/44,表示整个文件长度为44,此次返回的范围为0-9。如果不符合范围规范,则传送整个文件,并且不在结果中提及Conte nt-Range 。
如果设定If-Modified-Since ,并传入上次修改时间,如果参数中的时间早于实际修改时间,正常传送文件,并返回200 OK 。如果参数中的时间和实际修改时间一样或者更晚,会返回304 not modified 。
2. 如果设定If-Unmodified-Since ,如果传入参数中的时间等于或者晚于文件实际修改时间,传送文件并返回200 OK ,如果早于实际修改时间,会返回412 precondition failed 错误。
如果设定If-Match ,并传入期望的ETag ,若和object 的ETag 匹配,正常的发送文件。如果不符合,返回412 precondition failed 错误。
GET / HTTP/
Host: Mon, 03 Sep 2012 22:32:00 GMT
HTTP/ 200 OK
x-amz-request-id: 318BC8BC148832E5 Date: Mon, 03 Sep 2012 22:32:00 GMT
Last-Modified: Sat, 01 Sep 2012 17:50:00 GMT
如果设定If-None-Match来检查文件是否有更新,需要传入ETag,如果传入值和Object的相同,返回304 Not Modified。
GetObject操作支持包含If-Modified-Since,If-Unmodified-Since,If-Match和If-None-Match中多个条件查询,其中If-Modified-Since和If-Unmodified-Since可以同时存在,If-Match和If-None-Match也可以同时存在。在多条件查询时,遵循以下规则:
1. 如果包含If-Unmodified-Since并且不符合或者包含If-Match并且不
符合,返回412 precondition failed。
2. 如果包含If-Modified-Since并且不符合或者包含If-None-Match并且
不符合,返回304 Not Modified。
3. 返回200 OK,并传输文件。
HeadObject
Head Object只返回某个Object的meta 信息,不返回文件内容。
注意:不论正常返回200 OK还是非正常返回,Head Object都不返回消息体。
请求示例: