最近开发人脸识别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流程如下

  1. 注册应用以获取应用 ID。
  2. 使用令牌流或代码流通过指定的作用域让用户登录。就是上面的 SigninAsync函数
  3. 上传下载操作
  4. 注销用户(可选)。

首先先注册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,我的内心是拒绝的,甚至感觉日了一天

UWP 使用OneDrive云存储2.x api(一)【全网首发】的更多相关文章

  1. UWP 使用OneDrive云存储2.x api(二)【全网首发】

    接上一篇 http://www.cnblogs.com/hupo376787/p/8032146.html 上一篇提到为了给用户打造一个完全无缝衔接的最佳体验,UWP开发者最好也要实现App设置和数据 ...

  2. openstack-swift云存储部署(一)

    最近因为工作的需要搭建了一套swift云存储架构 我们先来解读一下里面的技术知识点:swift服务是属于openstack中的一种组件服务,openstack中的组件服务还有keystone.Nova ...

  3. phpcmsv9 阿里云OSS云存储整合教程

    该教程算不上是phpcmsv9阿里云oss插件,所以整个修改及其代码覆盖前请一定记得备份.还有一点就是后台发布文章时上传的附件还是会保存在你的服务器上,基于以下原因:1.个人的需求是前台页面需要使用t ...

  4. Microsoft Azure 云存储服务概念

    本文包括了以下几点内容: 什么是Azure云存储服务? 云存储服务分类 云存储服务的优势 什么是Azure云存储服务? Azure 云存储服务可以说是Azure 上最重要的SAAS服务了. 在Azur ...

  5. java servlet手机app访问接口(三)高德地图云存储及检索

    这篇关于高德地图的随笔内容会多一点, 一.业务说明     对应APP业务中的成员有两类,一是服务人员,二是被服务人员,  主要实现功能, 对APP中的服务人员位置进行时时定位, 然后通过被服务人员登 ...

  6. (转)云存储:阿里云OSS 、又拍云和 七牛 的比较

    阿里OSS:好处就是,那是一套完整的体系,存储,数据库,CDN,服务器,阿里都可以给你全包.缺点,费用对于没有盈利的网站来说太高了,好像定位就是给那些高端客户使用的,而且CDN,OSS的流量是分开收费 ...

  7. ueditor上传图片到七牛云存储(form api,java)

    转:http://my.oschina.net/duoduo3369/blog/174655 ueditor上传图片到七牛云存储 ueditor结合七牛传图片 七牛的试炼 开发前的准备与注意事项说明 ...

  8. Ueditor上传图片到本地改造到上传图片到云存储

    作为新手说多了都是泪啊!我特别想记录一下作为菜鸟时的坑.看看以后是否会看着笑出来. 为什么要改到云存储上就不说了.好处多多. 视频教程上使用的又拍云同时也提到了七牛云.下来我自己也查了下.又拍云是试用 ...

  9. 阿里云存储OSS之九大使用技巧

    http://www.biphp.com/cloud-computing/%E9%98%BF%E9%87%8C%E4%BA%91%E5%AD%98%E5%82%A8oss%E4%B9%8B%E4%B9 ...

随机推荐

  1. 从零使用Python测试。Testing Using Python.

    0. 写在前面 本人使用Python测试已有多年,略有些皮毛经验.每次有新员工入职,都会从头教一遍如何入门上手使用Python进行测试.趁这段有空,整理成文档,也好方便后续新员工学习.文章如有不妥之处 ...

  2. js 短信倒计时60s

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. LaunchScreen.storyboard 换图的问题

    之前设置了`LaunchScreen.storyboard`,在这个storyboard中加了一个imageView,里面设置了一张图片launch.png,今天需要更换这个启动图片,我就直接去工程里 ...

  4. 使用bower init创建bower.json文件

    使用bower init 可以快速创建bower.json文件 bower init 回答一系列问题后就可以了,其中大部分问题可以按enter跳过.

  5. Vue.js—快速入门

    Vue.js是什么 Vue.js 是一套构建用户界面的渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关注视图层,它不仅易于上手,还便于与第三方库或既有项目 ...

  6. vue实现仿淘宝结账页面

    这个demo,是小颖基于之前的 vue2.0在table中实现全选和反选   文章进行更新后的demo,主要功能呢,是仿照淘宝页面的结算购物车商品时自动算出合计价格的页面,具体页面效果请看下面的动图: ...

  7. 40个Java多线程问题

    1.多线程有什么用? 一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡.所谓”知其然知其所以然”,”会用”只是”知其然”,”为什么用”才是”知其所以然 ...

  8. 《项目架构那点儿事》——浅析web层struts2的构建

    [前言]所谓快速开发,实质上为了节省项目的开支成本,减少程序员的开发时 间,固然就形成了种种二次封装的框架,也就是造轮子,然后我们的程序就按照这个轮子去画瓢,这里我就把公司这几次开发系统的框架源码贴出 ...

  9. 7. ZooKeeper的stat结构

    ZooKeeper命名空间中的每个znode都有一个与之关联的stat结构,类似于Unix/Linux文件系统中文件的stat结构. znode的stat结构中的字段显示如下,各自的含义如下: cZx ...

  10. 设计模式的征途—12.享元(Flyweight)模式

    现在在大力推行节约型社会,“浪费可耻,节俭光荣”.在软件系统中,有时候也会存在资源浪费的情况,例如,在计算机内存中存储了多个完全相同或者非常相似的对象,如果这些对象的数量太多将导致系统运行代价过高.那 ...