UWP 使用OneDrive雲存儲2.x api(一)【全網首發】
最近開發人臉識別UWP【微識別 / WeRecognition】用到了OneDrive開發,下面把來龍去脈講一下。
下載地址 https://www.microsoft.com/store/productId/9PDSNS7X9ST9,商店火爆熱銷中。。。。。。
由於UWP是跨平臺的,一套代碼可以運行在所有Windows 10設備上,比如手機、電腦、全息、Hub、Xbox等。
那麽問題就來了,既然App可以跨屏臺運行,那麽為了給用戶打造一個完全無縫銜接的最佳體驗,UWP開發者最好也要實現App設置和數據的跨平臺。
對於一般的開發者來說,購買一個雲數據庫需要一定的成本,而且訪問速度也會有差異;買一個或者搭建一個自己的服務器成本更大。
何不用現成的?
要實現數據跨平臺使用,有兩個方法:
1、使用數據漫遊 Roaming
2、使用OneDrive存儲
數據漫遊Roaming的優缺點
優點:簡單方便易用,可以漫遊設置和文件
ApplicationDataContainer roaming = Windows.Storage.ApplicationData.Current.RoamingSettings; roaming.Values["key"] = "漫遊的設置";
// 漫遊文件夾 var roamingFolder = Windows.Storage.ApplicationData.Current.RoamingFolder;// 在漫遊文件夾內創建一個文件, var file = await roamingFolder.CreateFileAsync(filename, CreationCollisionOption.OpenIfExists); // 寫入內容 awaitFileIO.WriteTextAsync(file, "需要同步的內容");
如果你的數據很小,比如一些基本的設置,還有用戶名密碼之類的小文件,用這個最方便。
但是有大小限制【有的說是8KB,也有說100KB的】參考 http://www.cnblogs.com/ms-uap/p/4184328.html 大神講的很清楚了
OneDrive存儲優缺點
優點:可以存儲大文件了啦,現在只要註冊就送5G,還是15G來著,忘記了。反正我有30G的大小。教育版有1T呢。。。。。。
5G夠你用的了,如果你的數據文件大於1G以上,最好還是別做漫遊了,直接copy過去吧。天朝的寬帶上傳都是小水管。
缺點:沒資料!沒資料!!沒資料!!!
還有,不要去看官方文檔,不要去看官方文檔,不要去看官方文檔
https://docs.microsoft.com/zh-cn/onedrive/developer/rest-api/getting-started/graph-oauth
你說我在說瞎話,網上一搜明明有一些的,gayhub也有開源的。請註意,這些都是基於1.x的api開發的,而微軟已經不推薦這種方式使用了。
所以最新的2.x版本的api,你找不到任何官方sample或者民間的野sample!!!
好歹你官方的2.x也出來一兩年了,竟然沒有官方sample,不得不說微軟的【辦事效率非常】了。gayhub之前貌似有,但是被官方移除了,只有一個歷史記錄說明。不曉得他們呢為什麽移除,大概是不想讓大家使用吧。
使用OneDrive Api 2.x流程如下
- 註冊應用以獲取應用 ID。
- 使用令牌流或代碼流通過指定的作用域讓用戶登錄。就是上面的 SigninAsync函數
- 上傳下載操作
- 註銷用戶(可選)。
首先先註冊App,不是在商店註冊,而是onedrive授權註冊https://docs.microsoft.com/zh-cn/onedrive/developer/rest-api/getting-started/app-registration
所以當我研究了一天的1.x版本api後,發現下圖,https://docs.microsoft.com/zh-cn/onedrive/developer/rest-api/getting-started/msa-oauth,我的內心是拒絕的,甚至感覺日了一天??。
不過你要非死不可的使用1.x,也可以用啦。又沒有人把機關槍架在你腦袋上。
不過微軟說了,你需要Microsoft Graph來進行身份驗證和一系列的操作。
https://docs.microsoft.com/zh-cn/onedrive/developer/rest-api/getting-started/graph-oauth
但是看了官方的文檔和一些代碼後,各種嘗試,App仍然授權失敗。日了狗感覺。
這一回到這裏結束,關於新版如何使用,且聽下回分解。
UWP 使用OneDrive雲存儲2.x api(一)【全網首發】