小米應(yīng)用商店:開(kāi)放文件存儲(chǔ)使用指南

來(lái)源: 小米開(kāi)放平臺(tái)
作者:小米開(kāi)放平臺(tái)
時(shí)間:2021-02-26
17988
本文檔介紹了開(kāi)放文件存儲(chǔ)使用相關(guān)內(nèi)容,您可通過(guò)閱讀以下內(nèi)容,了解具體開(kāi)放文件存儲(chǔ)內(nèi)容。

ZDM1MWZlNi5qcGc.jpg

本文檔介紹了開(kāi)放文件存儲(chǔ)使用相關(guān)內(nèi)容,您可通過(guò)閱讀以下內(nèi)容,了解具體開(kāi)放文件存儲(chǔ)內(nèi)容。

1.小米開(kāi)放文件存儲(chǔ)(FDS)簡(jiǎn)介

1.1 FDS綜述

小米開(kāi)放文件存儲(chǔ)(File Storage Service,簡(jiǎn)稱(chēng)FDS),是小米開(kāi)放平臺(tái)(http://dev.xiaomi.com)所提供的眾多云服務(wù)之中的一種。FDS向開(kāi)發(fā)者提供了簡(jiǎn)潔直觀的Restful API,開(kāi)發(fā)者可以直接通過(guò)標(biāo)準(zhǔn)Http協(xié)議來(lái)調(diào)用FDS的API,同時(shí),為了方便廣大開(kāi)發(fā)者,F(xiàn)DS目前提供了Java、PHP和Android平臺(tái)的SDK,開(kāi)發(fā)者可以根據(jù)自己的應(yīng)用需求選用合適的SDK。

1.2 FDS的優(yōu)勢(shì)

FDS專(zhuān)注于提供使用簡(jiǎn)便、可靠的文件存儲(chǔ)服務(wù),下面是FDS服務(wù)的一些優(yōu)勢(shì):

·簡(jiǎn)單的數(shù)據(jù)模型:FDS采用了Bucket/Object數(shù)據(jù)模型,跟業(yè)內(nèi)主流系統(tǒng)保持一致,方便開(kāi)發(fā)者理解,降低使用門(mén)檻;

·直觀易用的API:FDS提供了簡(jiǎn)潔的Restful API,開(kāi)發(fā)者可以通過(guò)標(biāo)準(zhǔn)Http協(xié)議直接訪問(wèn);

·完善的認(rèn)證與授權(quán)機(jī)制:FDS支持各種身份認(rèn)證機(jī)制(包括簽名、OAuth2.0和小米SSO認(rèn)證),F(xiàn)DS還支持了完備的授權(quán)管理機(jī)制,最大程度的保護(hù)用戶(hù)數(shù)據(jù)的安全;

·彈性高可用的服務(wù)質(zhì)量:FDS架構(gòu)上支持良好的水平擴(kuò)展性,對(duì)用戶(hù)提供7x24高可用的服務(wù);

·靈活的應(yīng)用場(chǎng)景:支持的文件大小不受限制,能很好地適應(yīng)更種應(yīng)用場(chǎng)景;

·低廉的存儲(chǔ)成本:支持Reed-Solomon編碼,在保證數(shù)據(jù)可靠性的前提下,能夠最大程度地節(jié)約存儲(chǔ)成本。

1.3 FDS的基本概念

·桶(Bucket):Bucket是存儲(chǔ)Object的容器,在同一個(gè)Region內(nèi),Bucket是全局唯一的。每個(gè)Object都存在于某一個(gè)Bucket中,一個(gè)Bucket里面可以包含很多個(gè)Object。

·對(duì)象(Object):Object是用戶(hù)實(shí)際存儲(chǔ)在FDS中的數(shù)據(jù),包括用戶(hù)存儲(chǔ)的文件內(nèi)容和文件相關(guān)的元信息,它們合在一起,統(tǒng)稱(chēng)為Object。

·區(qū)域(Region):Region是物理上數(shù)據(jù)中心的劃分,一個(gè)數(shù)據(jù)中心的FDS稱(chēng)之為一個(gè)Region。同一個(gè)Region內(nèi)的Bucket在該Region內(nèi)是全局唯一的。

2.用戶(hù)身份認(rèn)證

2.1簽名認(rèn)證

本部分介紹FDS中用到的簽名認(rèn)證的基本原理。

2.1.1基本概念

使用FDS服務(wù)的簽名算法,需要了解以下基本概念:

·App Access Key:開(kāi)發(fā)者在小米開(kāi)放平臺(tái)申請(qǐng)的App Access Key,用于標(biāo)識(shí)開(kāi)發(fā)者的App;

·App Secret Key:開(kāi)發(fā)者在小米開(kāi)放平臺(tái)申請(qǐng)App Access Key時(shí)頒發(fā)的App Secret Key,這個(gè)由用戶(hù)自己保存,是用來(lái)做簽名時(shí)的密鑰;

·Signature:根據(jù)Access Key,Secret Key和用戶(hù)請(qǐng)求計(jì)算出的數(shù)字簽名,用于驗(yàn)證用戶(hù)身份。

2.1.2基于簽名的認(rèn)證過(guò)程

用戶(hù)要使用簽名來(lái)認(rèn)證身份,通常需要按下面的步驟來(lái)進(jìn)行:

·構(gòu)建準(zhǔn)備發(fā)往FDS的Http請(qǐng)求;

·使用App Secret Key和構(gòu)建好的請(qǐng)求內(nèi)容,計(jì)算簽名;

·將計(jì)算好的簽名和App Access Key組合起來(lái),置于Http請(qǐng)求的“authorization”Header中,將請(qǐng)求發(fā)往FDS;

·FDS收到請(qǐng)求,從”authorization”Header中解析中App Access Key和對(duì)應(yīng)的簽名;

·FDS用解析出的App Access Key獲取到對(duì)應(yīng)的App Secret Key;

·FDS用App Secret Key和請(qǐng)求內(nèi)容進(jìn)行簽名,得到服務(wù)端簽名;

·FDS對(duì)比服務(wù)端簽名和用戶(hù)請(qǐng)求解析出來(lái)簽名,如果一致剛認(rèn)證通過(guò),否則認(rèn)證不通過(guò)。

注意:App Secret Key不會(huì)在上述請(qǐng)求過(guò)程中傳輸。

2.1.3簽名算法

簽名算法是簽名認(rèn)證的核心,以下是簽名算法的詳細(xì)介紹:

·簽名在Http頭中的格式:“authorization:Galaxy-V2“+““+App Access Key+“:“+Signature;

·簽名計(jì)算:Signature=Base64(Hmac-Sha1(AppAccessSecret,StringToSign));

·簽名字符串(StringToSign)的構(gòu)造:StringToSign=HttpMethod+“n”+content-md5+“n”+content-type+“n”+date+“n”+CanonicalizedHeaders+CanonicalizedResource;

·CanonicalizedHeaders構(gòu)造:

用戶(hù)可以通過(guò)“x-xiaomi-“的方式,向FDS傳自定義的Header,CanonicalizedHeaders指的是規(guī)范化過(guò)之后的用戶(hù)自定義的Headers,規(guī)范化的過(guò)程如下:

  1.所有的Header都要轉(zhuǎn)成全小寫(xiě);

  2.將Header按Key進(jìn)行字典序排序;

  3.將具有相關(guān)Key的Headers合并,多個(gè)值之間用”,”分隔;

  4.將上述字符串連接起來(lái)即是CanonicalizedHeaders。

·CanonicalizedResource構(gòu)造:CannonicalizedResource是由用戶(hù)請(qǐng)求的Uri的相對(duì)路徑加上FDS預(yù)定義的SubResource(Acl等)相關(guān)的參數(shù)組成的。

2.1.4簽名庫(kù)

FDS目前提供了C++/Java/PHP版本的簽名庫(kù),詳細(xì)的簽名算法可以參見(jiàn)具體的簽名庫(kù)的實(shí)現(xiàn)。

3.Bucket操作REST API指南

3.1列所有Bucket

·語(yǔ)義:列出當(dāng)前用戶(hù)所擁有的所有Buckets

·語(yǔ)法:GET/HTTP/1.1 Host:files.fds.api.xiaomi.com Date:date Authorization:authorization_string

·請(qǐng)求參數(shù):無(wú)

·請(qǐng)求頭:

1614304452(1).png

3.2創(chuàng)建新Bucket

·語(yǔ)義:創(chuàng)建指定名字的Bucket

·語(yǔ)法:PUT/bucket_name HTTP/1.1 Host:files.fds.api.xiaomi.com Date:date Content-Length:content_length Authorization:authorization_string

·請(qǐng)求參數(shù):

1614304488(1).png

·請(qǐng)求頭:

1614304515(1).png

3.3列Bucket下面的Object

·語(yǔ)義:列出指定Bucket下面所有的Objects

·語(yǔ)法:GET/bucket_name HTTP/1.1 Host:files.fds.api.xiaomi.com Date:date Authorization:authorization_string

·請(qǐng)求參數(shù):

1614304552(1).png

·請(qǐng)求頭:

1614304597(1).png

3.4刪除Bucket

·語(yǔ)義:刪除指定名字的Bucket

·語(yǔ)法:DELETE/bucket_name HTTP/1.1 Host:files.fds.api.xiaomi.com Date:date Authorization:authorization_string

·請(qǐng)求參數(shù):無(wú)

·請(qǐng)求頭:

1614304642(1).png

3.5判斷Bucket存在性

·語(yǔ)義:判斷指定的Bucket是否存在

·語(yǔ)法:HEAD/bucket_name HTTP/1.1 Host:files.fds.api.xiaomi.com Date:date Authorization:authorization_string

·請(qǐng)求參數(shù):無(wú)

·請(qǐng)求頭:

1614304687(1).png

4.Object操作REST API指南

4.1上傳Object(PUT)

·語(yǔ)義:上傳指定名字的Object到指定的Bucket下,同名Object為覆蓋語(yǔ)義

·語(yǔ)法:PUT/bucket_name/object_nameHTTP/1.1 Host:files.fds.api.xiaomi.com Date:date Authorization:authorization_string body

·請(qǐng)求參數(shù):

1614304728(1).png

·請(qǐng)求頭:

1614304761(1).png

4.2上傳Object(POST)

·語(yǔ)義:從指定的Bucket下載指定的Object

·語(yǔ)法:GET/bucket_name/object_nameHTTP/1.1 Host:files.fds.api.xiaomi.com Date:date Authorization:authorization_string

·請(qǐng)求參數(shù):

1614304799(1).png

·請(qǐng)求頭:

1614304825(1).png

4.3刪除Object

·語(yǔ)義:從指定的Bucket下刪除指定的Object

·語(yǔ)法:DELETE/bucket_name/object_nameHTTP/1.1 Host:files.fds.api.xiaomi.com Date:date Authorization:authorization_string

·請(qǐng)求參數(shù):

1614304868(1).png

·請(qǐng)求頭:

1614304893(1).png

4.4判斷Object存在性

·語(yǔ)義:刪除指定名字的Bucket

·語(yǔ)法:DELETE/bucket_name HTTP/1.1 Host:files.fds.api.xiaomi.com Date:date Authorization:authorization_string

·請(qǐng)求參數(shù):無(wú)

·請(qǐng)求頭:

1614304939(1).png

4.5判斷Bucket存在性

·語(yǔ)義:判斷指定Bucket下是否存在指定的Object

·語(yǔ)法:HEAD/bucket_name/object_nameHTTP/1.1 Host:files.fds.api.xiaomi.com Date:date Authorization:authorization_string

·請(qǐng)求參數(shù):無(wú)

·請(qǐng)求頭:

1614304964(1).png

4.6 Pre-signed URI

Pre-signed URI是FDS提供的一種靈活的共享資源的方式。Object的擁有者使用自己的App Secret Key預(yù)先對(duì)Object的訪問(wèn)鏈接進(jìn)行簽名,生成出帶一定有效期的Pre-signed URI。Object擁有者將該P(yáng)re-signed URI發(fā)給其它用戶(hù),其它用戶(hù)在上述有效期內(nèi)可以用該P(yáng)re-signed URI對(duì)指定的Object,執(zhí)行指定的操作。

Pre-signed URI的格式如下:http://files.fds.api.xiaomi.com/bucket_name/object_name?Expires=expires&GalaxyAccessKeyId=app_access_key&Signature=signature

·參數(shù)說(shuō)明:

1614305031(1).png

5.FDS錯(cuò)誤碼參考

1614305013(1).png

6.其它

6.1使用縮略圖服務(wù)

FDS支持對(duì)JPEG/PNG/GIF三種類(lèi)型的圖片進(jìn)行縮略,用戶(hù)可以自行指定縮略的長(zhǎng)、寬,具體用法是在請(qǐng)求的URL后面加下列參數(shù):

1614305120(1).png

6.2使用Https進(jìn)行安全訪問(wèn)

FDS支持通過(guò)Https進(jìn)行訪問(wèn),將正常訪問(wèn)的URL中的scheme由Http替換為Https即可。對(duì)于比較敏感的用戶(hù)信息,請(qǐng)盡量使用Https進(jìn)行上傳、下載。

6.3使用CDN加速下載請(qǐng)求

FDS支持通過(guò)CDN加速下載請(qǐng)求,對(duì)于下載請(qǐng)求量比較大的應(yīng)用,請(qǐng)盡量使用CDN來(lái)進(jìn)行下載。CDN服務(wù)的地址為:

http://cdn.fds.api.xiaomi.com https://cdns.fds.api.xiaomi.com

7.文檔修訂歷史

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

立即登錄,閱讀全文
版權(quán)說(shuō)明:
本文內(nèi)容來(lái)自于小米開(kāi)放平臺(tái),本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
雙十一秘籍 | 11月米盟增收指南助你搶占電商大戰(zhàn)先機(jī)
雙十一秘籍 | 11月米盟增收指南助你搶占電商大戰(zhàn)先機(jī)
雙十一即將來(lái)臨,電商預(yù)算爭(zhēng)奪戰(zhàn)已經(jīng)打響!
小米開(kāi)發(fā)者
小米應(yīng)用商店
2024-10-182024-10-18
小米應(yīng)用商店關(guān)于《APP備案標(biāo)準(zhǔn)變更》的公告
小米應(yīng)用商店關(guān)于《APP備案標(biāo)準(zhǔn)變更》的公告
為了保護(hù)用戶(hù)權(quán)益,提升用戶(hù)體驗(yàn),根據(jù)《工業(yè)和信息化部關(guān)于開(kāi)展移動(dòng)互聯(lián)網(wǎng)應(yīng)用程序備案工作的通知》,小米應(yīng)用商店新增了APP備案包名與主辦單位的要求,以下是詳細(xì)內(nèi)容。
小米開(kāi)發(fā)者
小米應(yīng)用商店
2024-10-132024-10-13
App各大應(yīng)用商城的排名被哪些因素影響著?(小米/vivo篇)
App各大應(yīng)用商城的排名被哪些因素影響著?(小米/vivo篇)
小米應(yīng)用商店允許在后臺(tái)設(shè)置關(guān)鍵詞,8個(gè)關(guān)鍵詞,每個(gè)詞不超過(guò)5個(gè)字,權(quán)重從左到右逐漸降低。
App
小米應(yīng)用商店
應(yīng)用商店
2024-10-022024-10-02
米盟10月廣告增長(zhǎng)提效指南【附新功能預(yù)告】
米盟10月廣告增長(zhǎng)提效指南【附新功能預(yù)告】
國(guó)慶長(zhǎng)假即將拉開(kāi)序幕,7天長(zhǎng)假將帶來(lái)一波流量的高峰。小米廣告聯(lián)盟(以下簡(jiǎn)稱(chēng):米盟)為開(kāi)發(fā)者伙伴帶來(lái)了10月廣告增長(zhǎng)提效指南,內(nèi)含eCPM趨勢(shì)和預(yù)算分布預(yù)估、變現(xiàn)提效Tips、新功能爆料,助力開(kāi)發(fā)者伙伴在小長(zhǎng)假期間高效地把握預(yù)算節(jié)奏、提前精準(zhǔn)布局,實(shí)現(xiàn)量效雙贏!
小米開(kāi)發(fā)者
小米應(yīng)用商店
應(yīng)用商店
2024-10-012024-10-01
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開(kāi)掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
個(gè)人VIP
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家