23新浪微盤云存儲介紹_第1頁
23新浪微盤云存儲介紹_第2頁
23新浪微盤云存儲介紹_第3頁
23新浪微盤云存儲介紹_第4頁
23新浪微盤云存儲介紹_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

新浪微盤

云存儲實踐 –新浪殷凱什么是云存儲?云存儲是一個以數(shù)據(jù)存儲和管理為核心的云計算系統(tǒng)。什么是云存儲?什么是新浪微盤?視頻介紹新浪微盤開放平臺新浪微盤,不僅僅是一個個人云存儲工具,更是一個開放平臺!開放平臺地址:AndroidSDKGithub地址:開放平臺,為開發(fā)者提供一個免費的云存儲平臺,開發(fā)者可以將自己的應(yīng)用數(shù)據(jù)存儲在微盤.新浪微盤開放平臺微盤AndroidSDKOAuth2授權(quán)各種API調(diào)用,包括文件上傳下載,云端文件刪除,移動,重命名,用戶空間信息獲取等什么是OAuth2

授權(quán)OAuth(開放授權(quán))是一個開放標準,允許用戶讓第三方應(yīng)用訪問該用戶在某一網(wǎng)站上存儲的私密的資源(如照片,視頻,聯(lián)系人列表),而無需將用戶名和密碼提供給第三方應(yīng)用。關(guān)鍵詞:AppKeyAppSecrect令牌:token過期時間優(yōu)勢1.第三方開發(fā)者可以方便的訪問主站資源2.主站用戶的賬號密碼不易泄露什么是OAuth2

授權(quán)什么是OAuth2

授權(quán)SSO登錄OAuth2

授權(quán)第一步使用WebView加載登陸網(wǎng)頁

通過Get方式傳遞三個參數(shù):client_id(應(yīng)用的appkey),redirect_uri(回調(diào)地址),display(展示方式,手機設(shè)備為mobile)例如:OAuth2授權(quán)第二步在wap頁點擊登陸按鈕后,會有一個回調(diào)地址,可以在WebViewClient的shouldOverrideUrlLoading方法中捕獲.RedirectURL:截取這個URL中的code=3ea97ac6d5c1016a70d1c16e98b6f9caOAuth2授權(quán)第三步訪問這個地址,獲取最終token:傳入以下參數(shù):{“client_id”,appkey,“client_secret”,appSecrect,“grant_type”,“authorization_code”,“code”,code,“redirect_uri”,“回調(diào)地址”};OAuth2授權(quán)返回數(shù)據(jù):access_token(認證令牌),

expires_in(令牌有效期),

refresh_token(用來刷新令牌的token),

uid(新浪微博uid)如:AccessToken:37bfcb66632HDt54vD8mx3mCuNUcbb37;

ExpiresTime:1379572780(過期時間點);

RefreshToken:3d3d3066632HDt54vD8mx3mCuNU30fc6;

Uid:2788350991這些數(shù)據(jù)需要加密后保存在本地(DES)API調(diào)用用戶信息相關(guān)接口初始化VDiskAPIVDiskAPI<VDiskAuthSession>mApi;mApi=

newVDiskAPI<VDiskAuthSession>(session);Accountaccount=mApi.accountInfo();account.quota;

//用戶微盤總空間Account.consumed;

//用戶微盤已使用空間API調(diào)用獲取文件夾下的目錄信息Entrymetadata=mApi.metadata(path,

null,

true,

false);List<Entry>contents=metadata.contents;API調(diào)用獲取文件詳細信息Entrymetadata=mApi.metadata(path,

null,

true,

false);metadata.fileName();//文件名metadata.size;

//文件大小metadata.modified;

//文件修改時間metadata.path;

//文件微盤路徑API調(diào)用復(fù)制Entrymetadata=mApi.copy(fromPath,toPath);新建文件夾EntrymetaData=mApi.createFolder(path);刪除EntrymetaData=mApi.delete(path);移動Entrymetadata=mApi.move(fromPath,toPath);API調(diào)用小文件上傳API調(diào)用文件下載斷點續(xù)下本地創(chuàng)建緩存文件:源文件名.vdisktempreq.setHeader(“Range”,“bytes=”

+range+“-”);//設(shè)置下載范圍Range為本地緩存文件長度下載結(jié)束后,將緩存文件重命名為源文件名稱斷點續(xù)傳第一步----分片初始化/multipart/init傳遞參數(shù):s3host

:上傳服務(wù)器域名path:文件目標路徑size:文件總大小sha1:文件sha1簽名(判斷是否可以秒傳)part_total:文件分多少段上傳斷點續(xù)傳初始化返回結(jié)果:{upload_id:"0c6d42b51d774ee69e2d9bb30a7db3b0",part_sign:{"1":{part_number:"1",uri:"/upload.vdisk.me/partupload/ea2ecc626b9aa7537ec66409c75d73ed?partNumber=1&uploadId=0c6d42b51d774ee69e2d9bb30a7db3b0"},"2":{part_number:"2",uri:"/upload.vdisk.me/partupload/ea2ecc626b9aa7537ec66409c75d73ed?partNumber=2&uploadId=0c6d42b51d774ee69e2d9bb30a7db3b0"}}}將該分段信息以對象的形式保存在數(shù)據(jù)庫,供上傳每段分片時讀取斷點續(xù)傳第二步---上傳1.循環(huán)將每一段文件上傳至服務(wù)器2.每段文件上傳地址取決于初始化時返回的uri3.每一段文件上傳成功之后,更新本地分段信息,記錄下已經(jīng)上傳到第幾段.4.如果上傳某段過程中失敗了,下次會從這段文件的開始處上傳,而不會整個文件重傳,從而實現(xiàn)斷點續(xù)傳.斷點續(xù)傳第三步---文件合并文件合并接口plete所有分段上傳成功后,走合并文件接口,服務(wù)器端進行合并傳遞如下參數(shù):upload_id:初始化分片時得到的上傳upload_id upload_key:初始化分片時得到的上傳upload_key md5_list:本地計算的每段文件的md5,用逗號隔開,便于云端對每段分片完整性進行校驗云存儲實踐---Sherlock我們的項目,準備使用sherlock開源框架進行搭建.

使用這種框架的好處就是,Android任何版本都可以統(tǒng)一actionbar的標準樣式,無需開發(fā)者做過多兼容.Sherlock項目Demo演示云存儲實踐---下拉刷新我們使用開源開發(fā)包,

pulltorefresh-library通過很簡單的使用,就能達到下拉刷新的目的,減少了開發(fā)工作量云存儲實踐---引入微盤SDK云存儲實踐---引入微盤SDK云存儲實踐---登陸//初始化AppKeyPair,這是SDK封裝的對象,用來保存當(dāng)前應(yīng)用的appkey和appsecrectAppKeyPairappKeyPair=newAppKeyPair(Constants.CONSUMER_KEY,

Constants.CONSUMER_SECRET);//初始化VDiskAuthSession,這是SDK封裝的對象,用來保存當(dāng)前登陸信息,并參與登陸相關(guān)的邏輯,這個類是個單例,只需要初始化一次VDiskAuthSession

session=VDiskAuthSession.getInstance(this,appKeyPair,

AccessType.APP_FOLDER);//為session設(shè)置應(yīng)用的回調(diào)地址session.setRedirectUrl(Constants.REDIREC

T_URL);//執(zhí)行登陸邏輯,如果本地保存有未失效的登陸信息,就直接返回,如果沒有等咯信息或信息過期,會彈出登陸彈窗,需要用戶輸入用戶名密碼.session.authorize(OAuthActivity.this,OAuthActivity.this);云存儲實踐---應(yīng)用權(quán)限Basic權(quán)限和Sandbox(沙箱)權(quán)限沙箱機制,應(yīng)用之間數(shù)據(jù)不能互相訪問,保證用戶數(shù)據(jù)不被惡意竊取訪問用戶的Basic的數(shù)據(jù)需要較高權(quán)限,具有Basic權(quán)限的應(yīng)用可以直接操作微盤官方網(wǎng)盤內(nèi)的文件,而普通應(yīng)用只能在自己的沙箱中活動.Basic和sandbox數(shù)據(jù)共用用戶的存儲空間.云存儲實踐---代碼實現(xiàn)通過代碼,演示sherlock框架的使用,并完成登陸頁面的開發(fā)代碼完成微盤主頁面數(shù)據(jù)獲取和展示的邏輯完成主頁面目錄切換邏輯完成列表item右側(cè)控制按鈕邏輯,

popupwindow的展示,以及popup的方向判斷長按多選邏輯新建文件夾邏輯下載頁面開發(fā)文件下載及批量下載邏輯云存儲實踐---代碼實現(xiàn)上傳頁面開發(fā)選擇文件上傳的頁面開發(fā)文件多選上傳邏輯單個文件刪除文件批量刪除單個文件移動文件批量移動EmptyView的設(shè)置用戶注銷云存儲實踐---Fragment介紹Fragment要點Fragment作為Activity界面的一部分組成出現(xiàn)可以在一個Activity中同時出現(xiàn)多個Fragment,并且,一個Fragment亦可在多個Activity中使用。在Activity運行過程中,可以添加、移除或者替換Fragment(add()、remove()、replace())Fragment可以響應(yīng)自己的輸入事件,并且有自己的生命周期,當(dāng)然,它們的生命周期直接被其所屬的宿主activity的生命周期影響。云存儲實踐---Fragment介紹通常,應(yīng)當(dāng)至少實現(xiàn)如下的生命周期方法:onCreate()?當(dāng)創(chuàng)建fragment時,系統(tǒng)調(diào)用該方法.?在實現(xiàn)代碼中,應(yīng)當(dāng)初始化想要在fragment中保持的必要組件,當(dāng)fragment被暫?;蛘咄V购罂梢曰謴?fù).onCreateView()?fragment第一次繪制它的用戶界面的時候,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論