實(shí)戰(zhàn)項(xiàng)目新浪微盤第02天云存儲(chǔ)介紹_第1頁
實(shí)戰(zhàn)項(xiàng)目新浪微盤第02天云存儲(chǔ)介紹_第2頁
實(shí)戰(zhàn)項(xiàng)目新浪微盤第02天云存儲(chǔ)介紹_第3頁
實(shí)戰(zhàn)項(xiàng)目新浪微盤第02天云存儲(chǔ)介紹_第4頁
實(shí)戰(zhàn)項(xiàng)目新浪微盤第02天云存儲(chǔ)介紹_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、新浪微盤 云存儲(chǔ)實(shí)踐 我要講什么?云存儲(chǔ)上傳下載架構(gòu), 斷點(diǎn)續(xù)傳, 斷點(diǎn)續(xù)下,云端文件存儲(chǔ)方式,秒傳開放平臺(tái)如何利用好開放平臺(tái), 開放平臺(tái)常見概念, OAuth2.0授權(quán)機(jī)制網(wǎng)絡(luò)架構(gòu)異步訪問網(wǎng)絡(luò)的封裝, 網(wǎng)絡(luò)異常的全局處理實(shí)用框架ActionbarSherlock, PullToRefresh下拉刷新, Zxing掃描二維碼,微博SSO單點(diǎn)登錄,友盟統(tǒng)計(jì),Ant批量打包我還要講什么?常用開發(fā)技巧如何讓service常駐? 如何捕獲全局異常? 如何訪問https?圖片加載的緩存機(jī)制,居家旅行必備的加密算法我自己的小項(xiàng)目互聯(lián)網(wǎng)公司的那點(diǎn)事如何寫好簡(jiǎn)歷面試注意要點(diǎn)Lets go!什么是云存儲(chǔ)?云存儲(chǔ)

2、是一個(gè)以數(shù)據(jù)存儲(chǔ)和管理為核心的云計(jì)算系統(tǒng)。什么是云存儲(chǔ)?什么是新浪微盤?視頻介紹8新浪微盤開放平臺(tái)新浪微盤, 不僅僅是一個(gè)個(gè)人云存儲(chǔ)工具, 更是一個(gè)開放平臺(tái)!開放平臺(tái)地址: Android SDK Github 地址: 開放平臺(tái), 為開發(fā)者提供一個(gè)免費(fèi)的云存儲(chǔ)平臺(tái), 開發(fā)者可以將自己的應(yīng)用數(shù)據(jù)存儲(chǔ)在微盤.新浪微盤開放平臺(tái)微盤AndroidSDKOAuth2 授權(quán)各種API調(diào)用, 包括文件上傳下載, 云端文件刪除, 移動(dòng), 重命名, 用戶空間信息獲取等什么是OAuth2 授權(quán)OAuth(開放授權(quán))是一個(gè)開放標(biāo)準(zhǔn),允許用戶讓第三方應(yīng)用訪問該用戶在某一網(wǎng)站上存儲(chǔ)的私密的資源(如照片,視頻,聯(lián)系人列表

3、),而無需將用戶名和密碼提供給第三方應(yīng)用。關(guān)鍵詞:AppKeyAppSecrect令牌 : token/accesstoken過期時(shí)間優(yōu)勢(shì)1. 第三方開發(fā)者可以方便的訪問主站資源2. 主站用戶的賬號(hào)密碼不易泄露什么是OAuth2 授權(quán)什么是OAuth2 授權(quán)SSO登錄OAuth2 授權(quán)第一步使用WebView加載登陸網(wǎng)頁 通過Get方式傳遞三個(gè)參數(shù): client_id(應(yīng)用的appkey), redirect_uri(回調(diào)地址), display(展示方式, 手機(jī)設(shè)備為mobile)例如: ?client_id=1750636396&redirect_uri=/&display=mobile

4、OAuth2授權(quán)第二步在wap頁點(diǎn)擊登陸按鈕后, 會(huì)有一個(gè)回調(diào)地址, 可以在WebViewClient的shouldOverrideUrlLoading方法中捕獲.Redirect URL: 截取這個(gè)URL中的code=3ea97ac6d5c1016a70d1c16e98b6f9ca16OAuth2 授權(quán)第三步訪問這個(gè)地址, 獲取最終token: 傳入以下參數(shù): 獲取用戶信息 OAuth2 授權(quán)返回?cái)?shù)據(jù):access_token(認(rèn)證令牌), expires_in(令牌有效期) , refresh_token(用來刷新令牌的token), uid(新浪微博uid)如: AccessToken:

5、37bfcb66632HDt54vD8mx3mCuNUcbb37; ExpiresTime:1379572780 (過期時(shí)間點(diǎn)); RefreshToken:3d3d3066632HDt54vD8mx3mCuNU30fc6; Uid:2788350991這些數(shù)據(jù)需要加密后保存在本地(DES)API調(diào)用用戶信息相關(guān)接口初始化VDiskAPIVDiskAPI mApi;mApi = new VDiskAPI(session);Account account = mApi.accountInfo();account.quota; /用戶微盤總空間Account.consumed; /用戶微盤已使用空

6、間API調(diào)用獲取文件夾下的目錄信息Entry metadata = mApi.metadata(path, null, true, false);List contents = metadata.contents;API調(diào)用獲取文件詳細(xì)信息Entry metadata = mApi.metadata(path, null, true, false);metadata.fileName();/ 文件名metadata.size; / 文件大小metadata.modified; / 文件修改時(shí)間metadata.path; /文件微盤路徑API調(diào)用復(fù)制 Entry metadata = mApi

7、.copy(fromPath, toPath);新建文件夾 Entry metaData = mApi.createFolder(path);刪除 Entry metaData = mApi.delete(path);移動(dòng) Entry metadata = mApi.move(fromPath, toPath);API調(diào)用小文件上傳API調(diào)用文件下載斷點(diǎn)續(xù)下本地創(chuàng)建緩存文件: 源文件名.vdisktempreq.setHeader(“Range”, “bytes=” + range + “-”);/ 設(shè)置下載范圍 Range為本地緩存文件長度下載結(jié)束后, 將緩存文件重命名為源文件名稱斷點(diǎn)續(xù)傳第

8、一步-分片初始化 /multipart/init傳遞參數(shù):s3host : 上傳服務(wù)器域名path: 文件目標(biāo)路徑size: 文件總大小sha1: 文件sha1簽名(判斷是否可以秒傳)part_total: 文件分多少段上傳26斷點(diǎn)續(xù)傳初始化返回結(jié)果: upload_id: 0c6d42b51d774ee69e2d9bb30a7db3b0,part_sign: 1: part_number: 1, uri: /upload.vdisk.me/partupload/ea2ecc626b9aa7537ec66409c75d73ed?partNumber=1&uploadId=0c6d42b51d7

9、74ee69e2d9bb30a7db3b0 , 2: part_number: 2, uri: /upload.vdisk.me/partupload/ea2ecc626b9aa7537ec66409c75d73ed?partNumber=2&uploadId=0c6d42b51d774ee69e2d9bb30a7db3b0 將該分段信息以對(duì)象的形式保存在數(shù)據(jù)庫, 供上傳每段分片時(shí)讀取斷點(diǎn)續(xù)傳第二步-上傳1. 循環(huán)將每一段文件上傳至服務(wù)器2. 每段文件上傳地址取決于初始化時(shí)返回的uri3. 每一段文件上傳成功之后, 更新本地分段信息, 記錄下已經(jīng)上傳到第幾段.4. 如果上傳某段過程中失敗了,

10、下次會(huì)從這段文件的開始處上傳, 而不會(huì)整個(gè)文件重傳, 從而實(shí)現(xiàn)斷點(diǎn)續(xù)傳.斷點(diǎn)續(xù)傳第三步-文件合并文件合并接口 plete所有分段上傳成功后, 走合并文件接口, 服務(wù)器端進(jìn)行合并傳遞如下參數(shù):upload_id: 初始化分片時(shí)得到的上傳upload_idupload_key:初始化分片時(shí)得到的上傳upload_keymd5_list: 本地計(jì)算的每段文件的md5, 用逗號(hào)隔開, 便于云端對(duì)每段分片完整性進(jìn)行校驗(yàn)云存儲(chǔ)實(shí)踐-Sherlock我們的項(xiàng)目, 準(zhǔn)備使用sherlock開源框架進(jìn)行搭建. 使用這種框架的好處就是, Android任何版本都可以統(tǒng)一actionbar的標(biāo)準(zhǔn)樣式, 無需開發(fā)者做

11、過多兼容.Sherlock項(xiàng)目Demo演示云存儲(chǔ)實(shí)踐-下拉刷新我們使用開源開發(fā)包, pulltorefresh-library通過很簡(jiǎn)單的使用, 就能達(dá)到下拉刷新的目的, 減少了開發(fā)工作量云存儲(chǔ)實(shí)踐-引入微盤SDK云存儲(chǔ)實(shí)踐-引入微盤SDK云存儲(chǔ)實(shí)踐-登陸/初始化AppKeyPair, 這是SDK封裝的對(duì)象, 用來保存當(dāng)前應(yīng)用的appkey和appsecrectAppKeyPair appKeyPair = new AppKeyPair(Constants.CONSUMER_KEY, Constants.CONSUMER_SECRET);/初始化VDiskAuthSession,這是SDK封裝

12、的對(duì)象, 用來保存當(dāng)前登陸信息, 并參與登陸相關(guān)的邏輯, 這個(gè)類是個(gè)單例, 只需要初始化一次VDiskAuthSession session = VDiskAuthSession.getInstance(this, appKeyPair, AccessType.APP_FOLDER);/為session設(shè)置應(yīng)用的回調(diào)地址session.setRedirectUrl(Constants.REDIREC T_URL);/執(zhí)行登陸邏輯, 如果本地保存有未失效的登陸信息, 就直接返回, 如果沒有等咯信息或信息過期, 會(huì)彈出登陸彈窗, 需要用戶輸入用戶名密碼.session.authorize(OAut

13、hActivity.this, OAuthActivity.this);云存儲(chǔ)實(shí)踐-應(yīng)用權(quán)限Basic權(quán)限和Sandbox(沙箱)權(quán)限沙箱機(jī)制,應(yīng)用之間數(shù)據(jù)不能互相訪問 ,保證用戶數(shù)據(jù)不被惡意竊取訪問用戶的Basic的數(shù)據(jù)需要較高權(quán)限 , 具有Basic權(quán)限的應(yīng)用可以直接操作微盤官方網(wǎng)盤內(nèi)的文件, 而普通應(yīng)用只能在自己的沙箱中活動(dòng).Basic和sandbox數(shù)據(jù)共用用戶的存儲(chǔ)空間.云存儲(chǔ)實(shí)踐-代碼實(shí)現(xiàn)通過代碼, 演示sherlock框架的使用, 并完成登陸頁面的開發(fā)代碼完成微盤主頁面數(shù)據(jù)獲取和展示的邏輯完成主頁面目錄切換邏輯完成列表item右側(cè)控制按鈕邏輯, popupwindow的展示, 以

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論