BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Dropbox通过数据存储API支持结构化数据

| 作者 Abel Avram 关注 10 他的粉丝 ,译者 廖煜嵘 关注 0 他的粉丝 发布于 2013年7月18日. 估计阅读时间: 3 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

Dropbox发布了数据存储 API,提供了访问键值的功能,并支持在使用Dropbox用户的设备之间进行同步和自动解决冲突。
数据存储API允许应用在用户的Dropbox帐户中保存结构化数据,并内置支持在各种不同的设备间进行同步和自动解决冲突。该API支持离线活动,能在网络断开重新连接后进行更新。
数据存储以表格的方式保存,其中包含了由ID和字段集合组成的记录。每一个字段有名称和值。支持的类型有:

  • 字符串
  • 布尔型
  • 64位带符号整型
  • IEEE双精度浮点型
  • 支持POSIX毫秒时间戳的日期类型
  • 字节类型。支持如图片或压缩数据的二进制数据。由于每条记录的大小限制为100KB,可以通过Sync API访问Dropbox的文件以存储更大量的数据。该字段包括对文件的引用。
  • List列表类型。列表支持上述提及的类型。它不能包含其他列表。列表支持基本的操作:put、move、insert和delete。

数据存储不包括schema,能允许记录有不同数量的字段,但建议“所有在表中的记录都有相同的字段以便查询。”多表和数据存储可以根据开发者需要去创建。

一个应用如果不使用用户的存储配额则被限制为5MB的存储空间。如果超过大小限制,则开始使用用户的Dropbox配额,如果达到限制值则应用不能运行。
下面是一个Android的例子,说明如何开启默认的数据存贮、创建新的表格、插入一条有两个字段taskname和completed的记录,然后使用Dropbox同步到内存数据库中。

DbxDatastore store = DbxDatastore.openDefault(mAccount);
DbxTable tasksTbl = store.getTable("tasks");
DbxRecord firstTask = tasksTbl.insert().set("taskname",
"Buy milk").set("completed", false);
store.sync();

当一个同步操作发生的时候注册的监听器将会收到通知并按需处理。这就是数据存储如何在设备中运作的原理。

Dropbox为Android、iOS和Javascript提供了SDK。尽管API还处于beta阶段,

Dropbox期望“在接下来数周API会推出稳定版本”。

Dropbox提供对iOS for Xamarin的同步组件的支持,能支持使用C#访问数据存储。

由Xamarin创建的一个范例视频说明了如何在不同的设备间快速同步数据的。

查看英文原文: Dropbox Now Can Hold Structured Data with Datastore API


感谢崔康对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT