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 )关注我们,并与我们的编辑和其他读者朋友交流。
评论