小米应用商店:开放文件存储使用指南

时间:2021-07-15 | 标签: | 作者:Q8 | 来源:小米开放平台网络

小提示:您能找到这篇{小米应用商店:开放文件存储使用指南}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的小米应用商店:开放文件存储使用指南内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您!

< ">

< ">本文档介绍了开放文件存储使用相关内容,您可通过阅读以下内容,了解具体开放文件存储内容。

< ">1.小米开放文件存储(FDS)简介

< ">1.1 FDS综述

< ">小米开放文件存储(File Storage Service,简称FDS),是小米开放平台(http://dev.xiaomi.com)所提供的众多云服务之中的一种。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-Solomon编码,在保证数据可靠性的前提下,能够最大程度地节约存储成本。

< ">1.3 FDS的基本概念

< ">桶(Bucket):Bucket是存储Object的容器,在同一个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服务的签名算法,需要了解以下基本概念:

< ">App Access Key:开发者在小米开放平台申请的App Access Key,用于标识开发者的App;

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

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

< ">2.1.2基于签名的认证过程

< ">用户要使用签名来认证身份,通常需要按下面的步骤来进行:

< ">构建准备发往FDS的Http请求;

< ">使用App Secret Key和构建好的请求内容,计算签名;

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

< ">FDS收到请求,从”authorization”Header中解析中App Access Key和对应的签名;

< ">FDS用解析出的App Access Key获取到对应的App Secret Key;

< ">FDS用App Secret Key和请求内容进行签名,得到服务端签名;

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

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

< ">2.1.3签名算法

< ">签名算法是签名认证的核心,以下是签名算法的详细介绍:

< ">签名在Http头中的格式:“authorization:Galaxy-V2“+““+App Access Key+“:“+Signature;

< ">签名计算:Signature=Base64(Hmac-Sha1(AppAccessSecret,StringToSign));

< ">签名字符串(StringToSign)的构造:StringToSign=HttpMethod+“n”+content-md5+“n”+content-type+“n”+date+“n”+CanonicalizedHeaders+CanonicalizedResource;

< ">CanonicalizedHeaders构造:

< ">用户可以通过“x-xiaomi-“的方式,向FDS传自定义的Header,CanonicalizedHeaders指的是规范化过之后的用户自定义的Headers,规范化的过程如下:

< ">  1.所有的Header都要转成全小写;

< ">  2.将Header按Key进行字典序排序;

< ">  3.将具有相关Key的Headers合并,多个值之间用”,”分隔;

< ">  4.将上述字符串连接起来即是CanonicalizedHeaders。

< ">CanonicalizedResource构造:CannonicalizedResource是由用户请求的Uri的相对路径加上FDS预定义的SubResource(Acl等)相关的参数组成的。

< ">2.1.4签名库

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

< ">3.Bucket操作REST API指南

< ">3.1列所有Bucket

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

< ">语法:GET/HTTP/1.1 Host:files.fds.api.xiaomi.com Date:date Authorization:信息流视频广告authorization_string

< ">请求参数:无

< ">请求头:

< ">3.2创建新Bucket

< ">语义:创建指定名字的Bucket

< ">语法:PUT/bucket_name HTTP/1.1 Host:files.fds.api.xiaomi.com Date:date Content-Length:content_length Authorization:authorization_string

< ">请求参数:

< ">请求头:

< ">3.3列Bucket下面的Object

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

< ">语法:GET/bucket_name HTTP/1.1 Host:files.fds.api.xiaomi.com Date:date Authorization:authorization_string

< ">请求参数:

< ">请求头:

< ">3.4删除Bucket

< ">语义:删除指定名字的Bucket

< ">语法:DELETE/bucket_name HTTP/1.1 Host:files.fds.api.xiaomi.com Date:date Authorization:authorization_string

< ">请求参数:无

< ">请求头:

< ">3.5判断Bucket存在性

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

< ">语法:HEAD/bucket_name HTTP/1.1 Host:files.fds.api.xiaomi.com Date:date Authorization:authorization_string

< ">请求参数:无

< ">请求头:

< ">4.Object操作REST API指南

< ">4.1上传Object(PUT)

< ">语义:上传指定名字的Object到指定的Bucket下,同名Object为覆盖语义

< ">语法:PUT/bucket_name/object_nameHTTP/1.1 Host:files.fds.api.xiaomi.com Date:date Authorization:authorization_string bod广告优势y

< ">请求参数:

< ">请求头:

< ">4.2上传Object(POST)

< ">语义:从指定的Bucket下载指定的Object

< ">语法:GET/bucket_name/object_nameHTTP/1.1 Host:files.fds.api.xiaomi.com Date:date Authorization:authorization_string

< ">请求参数:

< ">请求头:

< ">4.3删除Object

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

< ">语法:DELETE/bucket_name/object_nameHTTP/1.1 Host:files.fds.api.xiaomi.com Date:date Authorization:authorization_string

< ">请求参数:

< ">请求头:

< ">4.4判断Object存在性

< ">语义:删除指定名字的Bucket

< ">语法:DELETE/bucket_name HTTP/1.1 Host:files.fds.api.xiaomi.com Date:date Authorization:authorization_string

< ">请求参数:无

< ">请求头:

< ">4.5判断Bucket存在性

< ">语义:判断指定Bucket下是否存在指定的Object

< ">语法:HEAD/bucket_name/object_nameHTTP/1.1 Host:files.fds.api.xiaomi.com Date:date Authorization:authorization_string

< ">请求参数:无



< ">请求头:

< ">4.6 Pre-signed URI

< ">Pre-signed URI是FDS提供的一种灵活的共享资源的方式。Object的拥有者使用自己的App Secret Key预先对Object的访问链接进行签名,生成出带一定有效期的Pre-signed URI。Object拥有者将该Pre-signed URI发给其它用户,其它用户在上述有效期内可以用该Pre-signed URI对指定的Object,执行指定的操作。



< ">Pre-signed URI的格式如下:http://files.fds.api.xiaomi.com/bucket网络营销招生推广方案_name/object_name?Expires=expires&GalaxyAccessKeyId=app_access_key&Signature=signature

< ">参数说明:

< ">5.FDS错误码参考

< ">6.其它

< ">6.1使用缩略图服务

< ">FDS支持对JPEG/PNG/GIF三种类型的图片进行缩略,用户可以自行指定缩略的长、宽,具体用法是在请求的URL后面加下列参数:

< ">6.2使用Https进行安全访问

< ">FDS支持通过Https进行访问,将正常访问的URL中的scheme由Http替换为Https即可。对于比较敏感的用户信息,请尽量使用Https进行上传、下载。

< ">6.3使用CDN加速下载请求

< ">FDS支持通过CDN加速下载请求,对于下载请求量比较大的应用,请尽量使用CDN来进行下载。CDN服务的地址为:

< ">http://cdn.fds.api.xiaomi.com https://cdns.fds.api.xiaomi.com

< ">7.文档修订历史

< ">2014/10/23,完成初始版本。

小米应用商店:开放文件存储使用指南

上一篇:eBay Listing优化做得好,曝光率、转化率和销量一
下一篇:小米应用商店:游戏审核规则文档


版权声明:以上主题为“小米应用商店:开放文件存储使用指南"的内容可能是本站网友自行发布,或者来至于网络。如有侵权欢迎联系我们客服QQ处理,谢谢。
相关内容
推荐内容
扫码咨询
    小米应用商店:开放文件存储使用指南
    打开微信扫码或长按识别二维码

小提示:您应该对本页介绍的“小米应用商店:开放文件存储使用指南”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通小米应用商店:开放文件存储使用指南的相关事宜。

关键词:小米应用商店:开放文件

关于 | 业务 | 案例 | 免责 | 隐私
客服邮箱:sales@1330.com.cn
电话:400-021-1330 | 客服QQ:865612759
沪ICP备12034177号 | 沪公网安备31010702002418号