OOS客服脚本
1、 OOS基本知识
1.1什么是OOS
面向对象存储(Object-Oriented Storage,OOS)是中国电信为客户提供的一种海量、弹性、高可用、高性价比的存储服务,是一种开放式的存储服务。
1.2 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.3 OOS有什么特点?
(1) 弹性扩展,按需付费
对用户来说,OOS是一种低成本的存储资源,并且可以无限扩容,用户只需根据所使用的存储量进行付费即可,节约了成本。
(2) 安全可靠
OOS采用多级加密数据,对用户数据进行分片加密保存,保证用户数据的安全性。
(3) 性能可靠
OOS采用高可用的服务集群及动态负载均衡,保证用户顺利度过访问高峰。
(4) 快速部署,便捷接入
用户只需在天翼云网站注册即可使用OOS服务,部署便捷。同时,OOS采用统一的应用程序编程接口为用户访问OOS资源提供了便捷的接入通道。
1.4 OOS适合哪方面的应用?
OOS主要适合以下类型的应用:
(1)企业邮件、财务数据的存储、备份和归档。
(2)交通录像、监控录像、呼叫中心的服务录音、档案管理、信息存储、网站托管服务等。
(3)互联网在线视频、网络游戏、电子商务、门户及社交网站类应用的文件、音视频、图片存储。
(4)中小型企业的静态网站托管。
1.5 OOS适合存储哪些文件?
1.6可对OOS的数据做哪些操作?
1) 创建、查看、罗列、删除Bucket。
2) 修改、获取Bucket的访问权限。
3) 上传、查看、罗列、删除Object。
4) 访问时支持If-Modified-Since和If-Match等HTTP参数。
1.8如何订购OOS?
您只需在天翼云官方网站上注册账号即可使用OOS服务,进入【产品中心】,选择【对象存储】,点击【我要开通】,即可收到开通成功的短信确认。进入控制台后即可使用oos。
1.9 OOS怎么收费,有哪些计费项?
收费项包括:存储容量、流出流量和请求次数。
1)存储容量计费:按用户数据占用的存储空间容量收取费用;
2)流出流量计费:按用户存储数据被调用或下载产生的流量收取费用;
3)请求次数计费:按照各种请求的次数收取费用。
扣费方式:按天扣费,每晚12:00按用户的使用量进行扣费。
欠费说明:OOS为每位用户提供一定的信用额度,当您处于欠费状态,但未超过信用额度时,OOS会发邮件提醒您进行充值。 当您欠费金额超过信用额度时,若您24小时之内 仍未进行充值,OOS服务将自动停止。而您所占用的存储空间的这部分资源仍会继续按日扣费, 因此欠费余额会累计。您可以在30天内充值补足欠费后,服务会自动开启,可以继续使用。欠费超过30天,将视为您主动放弃OOS存储服务, 存储空间将被回收,存储空间内的数据会被清理,数据不可恢复。
价格列表
容量价格
规格 | 标准价格 | |
元/G/天 | 元/G/月 | |
1GB | 0.022 | 约0.65 |
流量价格
规格 | 标准价格(元/GB) |
1GB | 0.55 |
请求次数标准
规格 | 标准价格(元/GB) |
GET/HEAD请求 | 0.01元/万次请求 |
其它请求 | 0.01元/千次请求 |
1.10 OOS数据访问方式有哪些?
1)通过OOS门户进行访问;
2)通过Http REST API接口进行访问;
3)通过OOS SDK进行编程;
4)通过OOS备份客户端进行访问;
5)通过OOS推荐的第三方工具(如webdrive,s3fs等)进行访问;
1.11 OOS对文件格式有无要求?
对文件格式没有要求
1.12 OOS安全性怎么保障?
1)在用户访问层面,所有针对OOS的数据请求都需要进行签名验证,OOS提供全方位的访问控制策略,使对象的拥有者对该对象有灵活的访问控制权。
2)在数据传输层面,不论是通过Web门户还是REST接口,用户的数据访问和操作都可以通过HTTPS协议进行,以确保数据传输中没有安全死角。
3)在数据存储层面,OOS将用户数据自动切片,进行分布式保存,并且对每片数据进行签名,即使数据被盗,没有用户的账号信息依然无法对数据进行破解,这样就充分保证了数据在存储层面的安全性。
4)在OOS系统的运维层面,通过利用中国电信的“虚拟云桌面”技术, 运维人员无法直接访问生产系统,而必须一个可录像的“虚拟桌面”才能访问,运维人员的一举一动都将被记录在案。
5)在数据中心的运维层面,中国电信具备全球最先进的数据中心管理和运营能力。OOS部署在8级抗震、一级耐火、一级防水、 通过ISO27001认证的的数据中心内部,与中国电信通信枢纽数据中心(武警守卫)同级别,具备完善的门禁制度、人员访控制度、设备巡检制度,确保物理层面的万无一失。
1.13 OOS试用时间多长?
我们通过给客户提供信用额的方式让用户免费试用OOS,试用时间不受限制,直到用户消费完信用额度为止,信用额度的消费跟OOS计费方式相同。目前的初始信用额度是100元。
1.14 OOS与自建服务器存储对比
(1) 弹性扩展
云存储按使用量计费,用户无需考虑由于业务需求的增长而扩充初期投资成本。
(2) 降低成本
使用OOS,您可以根据业务需求确定资源投入,避免投资和运营成本(电费、维护成本等)浪费。
(3) 安全可靠
云存储通过以下几种方式来保证数据安全:
通过SSL加密技术和MD5校验技术,保障数据传输的安全
通过数据自动切片、分布保存、每片签名等技术,保障数据存储的安全
通过用户鉴权、ACL访问控制等方式,保障数据使用的安全
通过7*24的专业运维团队、原厂的金牌服务,保障数据运维的安全
自建存储需要开发者自己从技术角度去实现安全防护,比如防火墙配置、加密技术等,对开发者要求较高,而且容易出现安全漏洞。而OOS有专业的技术安全团队进行安全防护,同时运维团队7*24小时的安全监控也能及时得弥补安全漏洞。
2、OOS FAQ
2.1 OOS API文档 “Date”字段的GMT格式说明?
在OOS API文档中,使用到“DATE”表示时间的字段,必须为HTTP1.1中支持的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
字母 | 日期或时间元素 | 表示 | 示例 |
y | 年 | Year | 1996;?96 |
M | 年中的月份 | Month | July;?Jul;?07 |
w | 年中的周数 | Number | 27 |
W | 月份中的周数 | Number | 2 |
D | 年中的天数 | Number | 189 |
d | 月份中的天数 | Number | 10 |
F | 月份中的星期 | Number | 2 |
E | 星期中的天数 | Text | Tuesday;?Tue |
a | Am/pm 标记 | Text | PM |
H | 一天中的小时数(0-23) | Number | 0 |
k | 一天中的小时数(1-24) | Number | 24 |
K | am/pm 中的小时数(0-11) | Number | 0 |
h | am/pm 中的小时数(1-12) | Number | 12 |
m | 小时中的分钟数 | Number | 30 |
s | 分钟中的秒数 | Number | 55 |
S | 毫秒数 | Number | 978 |
z | 时区 | General time zone | Pacific StandardTime;?PST;?GMT-08:00 |
Z | 时区 | RFC 822 time zone | -0800 |
2.2 OOS是否支持断点续传功能?
支持,断点续上传和断点续下载都支持。在GET请求中添加range参数即可支持标准的断点续传逻辑。使用multipart功能,可以实现分段上传。
2.3 OOS是否支持分块传输编码的请求?
不支持,HTTP协议有一种分块传输编码的机制(Chunked Transfer Encoding),即一个HTTP消息可以分成多个部分进行传输。它对HTTP请求和HTTP响应都是适用的。出于安全考虑,OOS不支持这种分块传输编码的请求。
2.4 如何获取OOS文件的访问地址?
1)请确定bucket开通时设置权限为公有或只读权限,如为私有读写则需要在URL后加入加密串获取,详细匹配方式见API文档中<访问控制篇>;
2)object的外链地址(访问地址)构成规则如下:
bucket
3)例如:创建了一个名称为“yunying"的bucket,且权限设置为“公有”
在文件夹“3”中,上传一个名为“1.jpg"文件;
其object的外链地址为:
2.5 OOS下载有峰值吗,如何收费?
OOS上传或下载不设峰值,没有流量、带宽、并发链接的限制,按客户实际使用量收费,每日将对前一天消费情况进行核算扣费。
2.6 能否邦定自己的域名,而不仅仅通过www.ctyun.cn访问?
CNAME方法:如您的bucket 名为cloudstorage,您的objcet "image/pujing.jpg"
2.7 OOS可以限制ip或者域名访问吗
可以限制ip和域名访问,配置bucket 的policy即可。
2.8 存储在OOS上的文件,如何设置防盗链功能
配置bucket 的policy即可,网站上有示例,参见:
。
2.9 OOS不想让其它人访问,那有什么办法能实现么
可以把bucket设置为私有,或者配置Policy,限制ip或域名访问。
2.10 OOS存储文件,能为多个用户设置访问权限吗?
OOS目前不支持针对文件进行多用户访问权限的设置。
2.11 OOS的API怎么用?
2.12 云服务器与OOS 上传文件,流量与请求次数是否收费?
目前是计费的,后续的新版本会是免费的。
2.13 OOS API返回结果没有JSON格式的吗
没有JSON格式的,返回结果是XML格式的。
2.14如何进行大文件上传?
1)有开发能力的用户可以通过OOS API或SDK来操作。
? 5GB以下文件或网络速度好的用户,可以使用PUT object 。
? 5GB以上或网络速度不好并且文件在100M以上的用户推荐使用Multipart Upload
2)无开发基础客户可下载OOS客户端,请参考
2.15 object怎么改名
两种方法可以实现:
1. 您可以删除原来的文件,上传新命名的文件也能达到改名的效果。
2. 您可以通过copy objcet 源文件复制成为一个新名字的文件,再把源文件删除即可。
2.16 OOS中可以重命名bucket吗?
OOS暂不支持bucket的重命名,若需要其他名称,建议您重新创建bucket。
2.17 OOS是否支持object迁移?
OOS 提供了COPY objcet的功能,您可以将原bucekt下的文件COPY到新bucket即可。
2.18 java sdk中的 OOSclient对象是否是线程安全的?
是线程安全的
2.19 OOS是否支持多个object打包下载?
目前OOS不支持多个object打包下载。
2.20 OOS返回的文件网络路径,域名都是ctyun的吗
2.21 OOS中url中可以实现授权文件上传吗?
目前没有此功能
2.22 如何使用JAVA SDK源代码?
网站上提供了sdk的源码下载,可以将其导入的Eclipse等IDE工具中。
2.23为什么bucket下的文件都删除了,却还能查看到占用的空间,并且bucket也删除不了?
请确认您是否使用过UploadMultipart?的功能,如使用过,建议您可以通过UploadsList?Multipart?查看是否存在已经被初始化但是未被Complete或者Abort的?Multipart?Upload的part。如果有,则需再执行Abort?Multipart?Upload(来终止上次操作的?Multipart?Upload,该命令会自动删除未完成的part)。因为未完成合并的part,无法形成objcet, 所以通过object list是看不到这些残留的part, 但这些都会产生占用空间量。
2.24 OOS支持bucket作为三级域名的访问方式吗?
支持,三级域名外链访问方式:
注:如果你的bucket里面有下划线"_",那么由于不符合WWW规范,无法做为三级域名使用,只能使用普通外链访问方式。
2.25 OOS中有好几个bucket,是否可以实现不同域名cname到不同bucket,如何操作?
可以,配DNS就可以,CNAME方法:
例如:您的bucket 名为cloudstorage,? 您的objcet 为"image/pujing.jpg"
访问地址就可以映射:??
2.26 什么是API密钥
OOS的API密钥是用来请求OOS资源时做验证用的,您可以在OOS账户中心的密钥管理模块查看和修改。
2.27 可以绑定域名吗?
可以
2.28是否防盗链
有,您可以通过配置Bucket的Policy(安全策略)来实现,具体参见这里
2.29 OOS能否解决互联互通问题?
1、OOS暂不支持互联互通,但支持电信/联通双线网络;
2、后期会解决互联互通问题。
2.30存储容量上限?
一个Object最大支持5T,您也可以通过分段上传来实现超大文件的上传,文件大小没有限制。
2.31是否支持压缩图片?
OOS目前暂不支持图片压缩,后期会考虑提供支持。
2.32是否支持批量上传
您可以再OOS自服务门户的控制台中进行文件批量上传,也可以通过编写程序或使用第三方支持工具(s3fs,crOOSftp等)实现批量上传。
2.33 OOS服务是否限制用户的并发请求数?
OOS不会限制用户的并发请求数
2.34 OOS接口能否在pad,android 使用
OOS提供基于HTTP的的标准REST接口,可以跨平台使用。
2.35 OOS是否可以挂载到云服务器当硬盘用
可以,您可以通过第三方软件工具s3fs将OOS挂载到云服务器。
2.36 最小计费单位
OOS的最小计量单位是“分”
2.37 OOS支持FTP吗?
支持,您可以使用第三方工具crOOSFtp来访问OOS;
2.38 oos数据怎么备份?
OOS底层默认对数据进行三次备份,您也可以通过将数据迁移到不同的bucket来进行备份;
2.39支持的开发规范?接口规范?
OOS采用兼容亚马逊S3的应用程序编程接口,支持通过基于Http的REST API来访问OOS服务。详情请参见OOS开发者文档;
2.40 云存储计算器服务
网站上有:
3、工具下载地址
OOS客户端工具
论坛上:
4、OOS的错误响应
当用户访问OOS出现错误时,OOS会返回给用户相应的错误码和错误信息,便于用户定位问题,并做出适当的处理。
错误代码列表
错误码 | 描述 | HTTP状态码 |
NotVerify | 用户未激活 | 403 Forbidden |
InvalidArgument | 无效的请求参数 | 400 |
BucketAlreadExists | 请求的bucket的name已经不可用,请选择不同的名字尝试。 | 409 Conflict |
BucketNotEmpty | 试图删除的的bucket非空 | 409 Conflict |
InvalidAccessKeyId | 你使用的OOS ID不存在 | 403 Forbidden |
InvalidBucketName | 指定的bucket无效 | 400 Bad Request |
InvalidURI | 无法解析指定的URL | 400 Bad Request |
MethodNotAllowed | 指定的方法不允许操作该资源 | 405 Method Not Allowed |
MissingContentLength | 在HTTP头中必须提供ContentLength | 411 length required |
RequestTimeTooSkewed | 请求的时间和服务器时间相差15分钟以上 | 403 Bad Request |
NoSuchBucket | 指定的bucket不存在 | 404 Not Found |
NoSuchKey | 指定对象的Key不存在 | 404 Not Found |
SignatureDoesNotMatch | 我们计算出的请求中的签名与用户提供的签名不一致。检查OOS账户安全 | 403 Forbidden |
TooManyBuckets | 你试图创建的bucket超出允许范围 | 400 d Request |
5、开放接口规范
5.1、关于Service的操作
GetService(ListBucket)
对于做Get请求的服务,返回请求者拥有的所有Bucket,其中“/”表示根目录。
该API只对验证用户有效,用户需要使用有效的Key ID在OOS中注册,匿名用户不能执行该操作。
请求示例
5.2关于Object操作
Object的操作有:Put Object、?Get Object、?Head Object、?Delete Object。
PutObject
Put Object用于上传文件。
请求示例
在名叫myBucket的bucket中,存储一张叫my-image.jpg的图片。
返回示例
∙ 如果Head中没有加入Content length参数,会返回411 Length Required错误。
∙ 返回示例:
∙ 如果试图添加的Object所在的Bucket不存在,返回404 Not Found错误。
∙ 如果试图添加的Object所在的Bucket没有访问权限,返回403 Forbidden错误。
∙ 注意:如果试图添加的Object的同名文件已经存在,并且有访问权限。新添加的文件将覆盖原来的文件,成功返回200 OK。
∙ 如果添加文件长度超过5T,返回错误消息400 Bad Request。
∙ 如果在Put Object的时候,携带以x-amz-meta-为前缀的参数,则视为user meta,比如x- amz-meta-location。一个Object可以有多个类似的参数,但所有的user meta总大小不能超过2k。
∙ 如果传入的Object key长度大于1023,返回400 Bad Request。
GetObject
∙ 用于获取某个Object,此操作要求用户对该Object有读权限。
∙ 下面示例中返回对象my-image.jpg
∙ 返回示例
∙
∙ 如果文件不存在返回404 Not Found错误。
∙ 错误示例:
∙ GetObject时可以设定文件传送范围,在头中以Range设定。
∙ 例如,设定 bytes=0-9,表示传送第0到第9这10个字符。
∙ 注意:在返回消息中会包含整个文件的长度和此次返回的范围,例如:Content-Range: bytes 0-9/44,表示整个文件长度为44,此次返回的范围为0-9。如果不符合范围规范,则传送整个文件,并且不在结果中提及Content-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错误。
∙ 如果设定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都不返回消息体。
∙ 请求示例:
返回示例:
∙ 如果文件不存在返回404 Not Found错误。
∙ HeadObject支持在头中设定If-Modified-Since, If-Unmodified-Since, If-Match,If-None-Match,具体规则请参见GetObject中对应的选项。如果没有修改,返回304 Not Modified。
∙ HeadObject支持在头中设定If-Modified-Since, If-Unmodified-Since, If-Match,If-None-Match,具体规则请参见GetObject中对应的选项。如果没有修改,返回304 Not Modified。
∙ HeadObject和GetObject操作类似,支持包含If-Modified-Since,If-Unmodified-Since,If-Match和If-None-Match中多个条件查询,其中If-Modified-Since和If-Unmodified-Since可以同时存在,If-Match和If-None-Match也可以同时存在。在多条件查询时,遵循以下规则。
∙ 如果包含If-Unmodified-Since并且不符合或者包含If-Match并且不符合,返回412 precondition failed。
∙ 如果包含If-Modified-Since并且不符合或者包含If-None-Match并且不符合,返回200 OK,并传输文件,返回304 Not Modified。
∙ 如果用户在PutObject的时候传入以x-OOS-meta-为开头的user meta,比如x-OOS-meta-location,返回消息时,返回这些user meta。
DeleteObject
∙ DeleteObject用于删除某个Object
∙ 注意:如果文件不存在,也返回204 No Content
请求示例
下一个例子中删除一个叫my-image.jpg的图片对象
返回示例
∙ 如果Bucket不存在,返回404 Not Found
5.3关于Bucket的操作
Bucket的操作有:Put Bucket、Get Bucket、DeleteBucket、Get Bucket ACL、Put Bucket ACL。
1、 Put Bucket
Put Bucket用于创建Bucket(不支持匿名访问)。
请求示例
请求创建一个名叫picture的bucket:
返回示例
如果请求的Bucket已经存在,并且请求者是所有者,同样返回200 OK成功。
如果请求的Bucket已经存在,但是不是请求者所拥有的,返回409 Conflict。
如果想创建的Bucket不符合命名规范,返回400 Bad Request消息:
如果用户发起PUT Bucket请求的时候,没有传入用户验证信息,返回403 Forbidden消息。
如果PutBucket的时候发现已经超过bucket最大创建数—10时,返回400 Bad Request消息。
Get Bucket (List Object)
Get Bucket操作可用来list Bucket中所有Object的信息。
请求示例
返回示例
使用请求变量的示例:
注意:
1.文件中自定义的meta,在GetBucket请求时不会返回。
2.List的结果中会标识出那些keys是Object Group。
如果访问的Bucket不存在,包括试图访问因为命名不规范无法创建的Bucket,
返回404 Not Found错误。如果没有访问该Bucket的权限,返回403 Forbidden错误。
GetBucket(ListObject)时,也可以通过prefix,marker,delimiter和max-keys对list做限定,返回部分结果。
1. prefix限定返回的object key必须以prefix作为前缀。注意使用prefix查询时,返回的key中仍会包含prefix。
2. max-keys用于限定此次返回object的最大数,如果不设定,默认为100,max-keys取值不能大于100。
3. maker用户设定结果从marker之后按字母排序的第一个开始返回。
4. prefix,marker用来实现分页显示效果,参数的长度必须小于256字节。
5. delimiter是一个用于对Object名字进行分组的字符。所有名字包含指定的前缀且第一次出现delimiter字符之间的object作为一组元素——CommonPrefixes。
利用delimiter这个参数,可以方便地实现出文件夹的功能,如一个bucket存在object : fun/test.jpg, fun/movie/001.avi, fun/movie/007.avi。若设定prefix为”fun/” ,则返回三个object;如果增加设定delimiter为“/”,则返回”fun/test.jpg”和”fun/movie/”;即实现了文件夹的逻辑。
如果把prefix设为某个文件夹名,例如/bucketName/folder1/,就可以罗列以此prefix开头的文件,即该文件夹下递归的所有的文件和子文件夹。如果再把delimiter设置为 / 时,返回值就只罗列该文件夹下的文件,该文件夹下的子文件名返回在CommonPrefixes部分,子文件夹下递归的文件和文件夹不被显示。
如果因为max-keys的设定无法一次完成listing,返回结果会附加一个
即使marker实际在列表中不存在,返回也从符合marker字母排序的下一个开始打印。如果max-keys小于0或者大于100,将返回400 Bad Request错误。若prefix,marker,delimiter参数不符合长度要求,返回400 Bad Request。
Prefix不符合规范返回消息示例:(maker,delimiter参数不符合长度要求返回消息同prefix)。
Delete Bucket
Delete Bucket用于删除某个Bucket。
请求示例:
删除名叫doc的bucket:
返回示例
如果Bucket不存在,返回204 no content错误。
如果试图删除一个不为空的Bucket,返回409 Conflict错误。
如果试图删除一个没有对应权限的Bucket,返回403 Forbidden错误。
Get Bucket ACL
Get Bucket ACL用来获取某个Bucket的ACL。
请求示例
请求一个指定bucket的ACL信息
返回示例
GET Bucket (
6、Bucket权限控制
Bucket访问权限:面向对象存储(OOS)提供Bucket级别的权限控制,Bucket目前有3种访问权限:private(私有),public-read(只读)和public(公有)。各自含义如下:
● private(私有)
● 只有该Bucket的所有者可以对该Bucket内的Object进行读写操作(包括Put、Delete和Get Object)。其他人无法访问该Bucket内的Object。
● public-read(只读)
● 只有该Bucket的所有者可以对该Bucket内的Object进行写操作(包括Put、Delete、 Object)。任何人(包括匿名访问)可以对该Bucket中的Object进行读操作(Get Object)。
● public(公有)
● 任何人(包括匿名访问)都可以对该Bucket中的Object进行Put,Get和Delete操作。这些操作可能会造成Bucket所有者数据的增加或者丢失,且所有这些操作产生的费用由该Bucket的所有者承担,所以请慎用该权限。
说明:新建Bucket时,默认权限是private,用户可以根据需要修改为其他权限。
OOS访问控制说明
用户签名验证(Authentication)
OOS通过使用Access Key ID/Secret Access Key对称加密的方法来验证某个请求的发送者身份。Access Key ID是注册时的邮箱,Secret Access Key是注册时的密码。当用户想以个人身份向OOS发送请求时,需要首先将发送的请求按照OOS指定的格式生成签名字符串;然后使用Secret Access Key对签名字符串进行加密产生验证码。OOS收到请求以后,会通过Access Key ID找到对应的Secret Access Key,以同样的方法提取签名字符串和验证码,如果计算出来的验证码和提供的一样,即认为该请求是有效的;否则,OOS将拒绝处理这次请求,并返回错误码。
“访问控制”包括以下内容:
● 用户签名验证(Authentication)
● 在Head中包含签名
● 在URL中包含签名
● Bucket权限控制
● Object外链地址的构成规则
● 防盗链
本文来源:https://www.2haoxitong.net/k/doc/12669e5c18e8b8f67c1cfad6195f312b3069ebc6.html
文档为doc格式