认证小米开放文件存储

小米开放  时间:2021-05-08  阅读:()

小米开放文件存储(FD S)用户指南

1. 小米开放文件存储(FD S)简介

1.1 FDS综述

小米开放文件存储(File Storage Service,简称FDS) 是小米开放平台所提供的众多云服务之中的一种。 FDS向开发者提供了简洁直观的Restful API开发者可以直接通过标准Http协议来调用FDS的API同时为了方便广大开发者 FDS目前提供了Java、PHP和Android平台的SDK开发者可以根据自己的应用需求选用合适的SDK。

1.2 FDS的优势

FDS专注于提供使用简便、可靠的文件存储服务下面是FDS服务的一些优势:

 简单的数据模型 FDS采用了Bucket/Object数据模型跟业内主流系统保持一致方便开发者理解 降低使用门槛

 直观易用的API FDS提供了简洁的Restful API,开发者可以通过标准Http协议直接访问 完善的认证与授权机制 FDS支持各种身份认证机制包括签名、OAuth2.0和小米SSO认证  FDS还支持了完备的授权管理机制最大程度的保护用户数据的安全

 弹性高可用的服务质量 FDS架构上支持良好的水平扩展性对用户提供7x24高可用的服务

 灵活的应用场景:支持的文件大小不受限制能很好地适应更种应用场景 低廉的存储成本:支持Reed-Solomo n编码在保证数据可靠性的前提下能够最大程度地节约存储成本。

1.3 FDS的基本概念

桶(Bucket) : Bucket是存储Obj ect的容器在同一个Region内 Bucket是全局唯一的。每个Object都存在于某一个Bucket中一个Bucket里面可以包含很多个Object。

对象(Object) : Object是用户实际存储在FDS中的数据包括用户存储的文件内容和文件相关的元信息它们合在一起统称为Object。

区域(Region) : Region是物理上数据中心的划分一个数据中心的FDS称之为一个Region。 同一个Region内的Bucket在该Region内是全局唯一的。

2. 用户身份认证

2.1签名认证

本部分介绍FDS中用到的签名认证的基本原理。

2.1.1基本概念

本部分介绍FDS中用到的签名认证的基本原理。

使用FDS服务的签名算法需要了解以下基本概念:

 App Access Key:开发者在小米开放平台申请的App Access Key,用于标识开发者的App

 App Secret Key: 开发者在小米开放平台申请App Access Key时颁发的AppSecret Key,这个由用户自己保存是用来做签名时的密钥

 Signature:根据Access Key Secret Key和用户请求计算出的数字签名用于验证用户身份。

2.1.2基于签名的认证过程

1. 构建准备发往FDS的Http请求

2. 使用App Secret Key和构建好的请求内容计算签名

3. 将计算好的签名和 App Access Key 组合起来 置于 Http请求的“authorization” Header中将请求发往FDS;

4. FDS收到请求从”authorization” Header中解析中App Access Key和对应的签名;

5. FDS用解析出的App Access Key获取到对应的App Secret Key;

6. FDS用App Secret Key和请求内容进行签名得到服务端签名;

7. FDS对比服务端签名和用户请求解析出来签名如果一致刚认证通过否则认证不通过。

注意: App Secret Key不会在上述请求过程中传输。

2.1.3签名算法

签名算法是签名认证的核心 以下是签名算法的详细介绍:

签名在Http头中的格式: “author ization: Galaxy-V2“ + “ “+App Access Key+ “:” + Signature 

签名计算: Signature = Base 64 (Hmac-Sha1 (AppAcc essSecret,

StringToSign) ) ;

签名字符串(String ToSign)的构造:

StringToSign = HttpMe thod + “\n” +content-md5 + “\n” +content-type + “\n” +date + “\n” +

CanonicalizedHeade rs +

CanonicalizedResou rce;

Canoni calize dHeade rs构造:

用户可以通过“x-xiaomi-“的方式 向FDS传自定义的Header,

CanonicalizedHeade rs指的是规范化过之后的用户自定义的Header s规范化的过程如下:

1. 所有的Header都要转成全小写

2. 将Heade r按Key进行字典序排序

3. 将具有相关Key的Headers合并多个值之间用”,”分隔

4. 将上述字符串连接起来即是CanonicalizedHeade rs。

CanonicalizedResou rce构造: Cannon icaliz edReso urce是由用户请求的Uri的相对路径加上FDS预定义的SubResou rce(Acl等)相关的参数组成的。

2.1.4签名库

FDS目前提供了C++/Java/PHP版本的签名库详细的签名算法可以参见具体的签名库的实现。

3. Bucket操作REST API指南

3.1列所有Bucket

语义:列出当前用户所拥有的所有Buckets

语法:

GET / HTTP/1.1Host: files.fds.api.xiaomi.comDate: dateAuthoriz ation: authorization_string

请求参数:无

请求头:

是否

字段 取值 必须 描述

Date 字符串需符合Http协议定义 是 请求的当前时间Authorizatio n 身份认证字符串跟选用的认证机制有关具体格式 是 目前支持Signature/OAut

为 种方式的认证选择合适的使

 1.签名认证: “Ga“la“xy_V2” + “ “ +

AppAccessKey + : + Signat ure

 2.OAuth 2.0认证: “OAuth”

 3.小米SSO认证: “SSO”

3.2创建新Bucket

语义:创建指定名字的Bucke t

语法:

PUT /bucket_name HTTP/1.1Host: files.fds.api.xiaomi .comDate: dateContent-Length: content_lengthAuthorization: authorization_string

请求参数:

参数 取值 是否必须 描述acl 无 否 正常创建Bucket时不需要如果要修改Bucket的ACL信息需要指定该参数请求头:

是否

字段 取值 必须 描述

Date 字符串需符合Http协议定义 是 请求的当前时间

Authorizatio n 身份认证字符串跟选用的认证机制有关具体 是 目前支持Signatur e/OAuth 2

格式为 式的认证选择合适的使用

 1.签名认证: “Galaxy_V2” + “ “ +

AppAccessKey + “:“ + Signature

 2.OAuth 2.0认证: “OAuth”

 3.小米SSO认证: “SSO”

Content-Length 整数值, body的长度 是 创建Bucket时Body长度为

是否

字段 取值 必须 描述

时 Body长度为对应的JSON

3.3列Bucket下面的Object

语义:列出指定Bucket下面所有的Objects

语法:

GET /bucket_name HTTP/1.1Host: files.fds.api.xiaomi .comDat e: dateAuthoriz ation: authorization_string

请求参数:

是否

参数 取值 必须 描述acl 无 否 用于获取指定Bucket的ACL信息uploads 无 否 用于获取指定Bucket下正在进行的Multipart Uploadprefix 字符串 否 列指定前缀的所有Objectsdelimiter 字符缺省为’/’ 否 Object名字中的分隔符用来生成Common Prefixmarker 字符串 否 当一个Bucket下面的Obj ect数量大于maxKeys时会分

表示当前批次的起始Object名字(字典序)maxKeys 在(0, 1000]范围内的整 否 当一个Bucket下面有比较多的Object数量的时候需

数缺省为1000 maxKeys表示每个批次可返回Object数的最大值请求头:

是否

字段 取值 必须 描述

Date 字符串需符合Http协议定义 是 请求的当前时间Authorizatio n 身份认证字符串跟选用的认证机制有关具体格式 是 目前支持Signature/OAut

为 种方式的认证选择合适的使

 1.签名认证: “Galaxy_V2” + “ “ +

AppAccessKey + “:“ + Signat ure

 2.OAuth 2.0认证: “OAuth”

是否

字段 取值 必须 描述

 3.小米SSO认证: “SSO”

3.4删除Bucket

语义:删除指定名字的Bucke t

语法:

DELETE /bucket_name HTTP/1.1Host: files.fds.api.xiaomi.comDat e: dateAuthorization: authorization_string

请求参数:无

请求头:

是否

字段 取值 必须 描述

Date 字符串需符合Http协议定义 是 请求的当前时间Authorizatio n 身份认证字符串跟选用的认证机制有关具体格式 是 目前支持Signature/OAut为 种方式的认证选择合适的使 1.签名认证: “Galaxy_V2” + “ “ +

AppAccessKey + “:“ + Signat ure

 2.OAuth 2.0认证: “OAuth”

 3.小米SSO认证: “SSO”

3.5判断Bucket存在性

语义:判断指定的Bucket是否存在

语法:

HEAD /bucket_name HTTP/1.1Host: files.fds.api.xiaomi.comDat e: dateAuthoriz ation: authorization_string

请求参数:无

请求头:

是否

字段 取值 必须 描述

Date 字符串需符合Http协议定义 是 请求的当前时间Authorizatio n 身份认证字符串跟选用的认证机制有关具体格式 是 目前支持Signature/OAut

为 种方式的认证选择合适的使

 1.签名认证: “Ga“la“xy_V2” + “ “ +

AppAccessKey + : + Signat ure

 2.OAuth 2.0认证: “OAuth”

 3.小米SSO认证: “SSO”

4. Object操作REST API指南

4.1上传Obje ct (PUT)

语义:上传指定名字的Object到指定的Bucket下 同名Object为覆盖语义

语法:

PUT /bucket_name/object_name HTTP/1. 1

Host: files.fds.api.xiaomi .comDate: date

Authorization: authorization_stringbody

请求参数:

是否必

参数 取值 须 描述uploads 无 否 Multipart Upload开关传该参数就表示当前的Upload是一个MpartNumber 整数 否 Multipart Upload的part序号用于表示当前上传的是第多少个renameTo 字符串 否 用来对Obj ect进行重命名值是重命名后的Object名字acl 无 否 ACL开关传该参数表示给当前的Obj ect设置ACLexpires 整数毫秒 否 上传成功返回的Pre-signed URI的过期时间不传的话默认为3请求头:

字段 取值 须 描述

Date 字符串需符合Http协议定义 是 请求的当前时间

Authorizatio n 身份认证字符串跟选用的认证机制有关具 是 目前支持Signatur e/OAuth2

体格式为 式的认证选择合适的使用

 1.签名认证: “Galaxy_V2” + “ “+

AppAcc essKey + “:“ +

Signature

 2.OAuth 2.0认证: “OAuth”

 3.小米SSO认证: “SSO”

Content-Length 整数值, body长度 是 body内容的字节长度Content-Type 字符串, body类型 否 body内容的类型缺省会根据

识别不能识别的缺省为置为binary/octet-streamContent-MD5 字符串, Base64 (body MD5) 否 用于检验body内容正确性Cache-Contro l 字符串需符合Http协议定义 否 用来控制对当前Object的缓存Content-Encoding 字符串需符合Http协议定义 否 用来指定Object内容的编码方Last-Modified 字符串需符合Http协议定义 否 用来指定Object最后一次更新x-xiaomi-meta- 字符串用户自定义的的元信息 否 以x-xiaomi-meta-为前缀

的元信息

4.2上传Object (POST)

语义:上传不指定名字的Object到指定的Bucket下 由服务端生成唯一的名字

语法:

POST /bucket_name HTTP/1.1Host: files.fds.api.xiaomi.comDat e: dateAuthoriz ation: authorization_string

请求参数:

是否必

参数 取值 须 描述uploads 无 否 Multipart Upload开关此处用于初始化一个不指定Object名字的Mexpires 整数毫秒 否 过期时间该值用于上传成功返回的Pre-signed URI的过期不传的话请求头:与通过PUT上传Object的相同

4.3下载Object

语义:从指定的Bucket下载指定的Object

语法:

GET /bucket_name/object_name HTTP/1.1Host: files.fds.api.xiaomi.comDat e: dateAuthorization: authorization_string

请求参数:

参数 取值 是否必须 描述acl 无 否 获取Object ACL信息的开关打开时 GET的结果是对应Object的Ametadata 无 否 获取Object元数据的开关打开时 GET的结果是对应Object的元数请求头:

是否

字段 取值 必须 描述

Date 字符串需符合Http协议定义 是 请求的当前时间Authorizatio n 身份认证字符串跟选用的认证机制有关具体格式 是 目前支持Signature/OAut

为 种方式的认证选择合适的使

 1.签名认证: “Galaxy_V2” + “ “ +

AppAccessKey + “:“ + Signat ure

 2.OAuth 2.0认证: “OAuth”

 3.小米SSO认证: “SSO”

4.4删除Object

语义:从指定的Bucket下删除指定的Object

语法:

青果网络-618阿里云,腾讯云特惠优惠折上折!

官方网站:点击访问青果云官方网站活动方案:—————————–活动规则—————————1、选购活动产品并下单(先不要支付)2、联系我司在线客服修改价格或领取赠送时间3、确认价格已按活动政策修改正确后,支付订单,到此产品开设成功4、本活动产品可以升级,升级所需费用按产品原价计算若发生退款,按资源实际使用情况折算为产品原价再退还剩余余额! 美国洛杉矶CN2_GIACPU内存系统盘流量宽带i...

10gbiz七月活动首月半价$2.36/月: 香港/洛杉矶CN2 GIA VPS

10gbiz怎么样?10gbiz 美国万兆带宽供应商,主打美国直连大带宽,真实硬防。除美国外还提供线路非常优质的香港、日本等数据中心可供选择,全部机房均支持增加独立硬防。洛杉矶特色线路去程三网直连(电信、联通、移动)回程CN2 GIA优化,全天低延迟。中国大陆访问质量优秀,最多可增加至600G硬防。香港七星级网络,去程回程均为电信CN2 GIA+联通+移动,大陆访问相较其他香港GIA线路平均速度更...

v5server:香港+美国机房,优质CN2网络云服务器,7折优惠,低至35元/月

v5net当前对香港和美国机房的走优质BGP+CN2网络的云服务器进行7折终身优惠促销,每个客户进线使用优惠码一次,额外有不限使用次数的终身9折优惠一枚!V5.NET Server提供的都是高端网络线路的机器,特别优化接驳全世界骨干网络,适合远程办公、跨境贸易、网站建设等用途。 官方网站:https://v5.net/cloud.html 7折优惠码:new,仅限新客户,每人仅限使用一次 9...

小米开放为你推荐
fugedios11桌面chromeTelewizjamedia请务必阅读正文之后的免责条款部分OPENCORE苹果引导配置说明第四版-基于eacceleratorCentOS5.2下安装eAccelerator,怎么都装不上win7关闭445端口如何快速关闭445端口canvas2Canvas ~セピア色のモチーフ~ 这个动画片的中文翻译是什么?从哪看?iphonewifi苹果wifi版和4G版是什么意思,有什么区别吗win7勒索病毒补丁我的电脑是windows7系统,为什么打不了针对勒索病毒的补丁(杀毒软件显
fc2最新域名 ip反查域名 长沙域名注册公司 GGC 网络星期一 淘宝双十一2018 台湾谷歌网址 福建天翼加速 免费个人空间申请 有奖调查 200g硬盘 免费mysql数据库 重庆电信服务器托管 路由跟踪 net空间 工信部网站备案查询 注册阿里云邮箱 大化网 免费赚q币 zcloud 更多