BT

Dropbox が Datastore APIで構造化したデータを保存できるようになった

| 作者: Abel Avram フォローする 7 人のフォロワー , 翻訳者 編集部N フォローする 0 人のフォロワー 投稿日 2013年7月16日. 推定読書時間: 3 分 |

原文(投稿日:2013/07/11)へのリンク

Dropbox がリリースしたDatastore APIは、ユーザーのDropboxアカウントを使い、自動的なコンフリクト解決によって、デバイス間での同期をサポートするキー-値型のデータストアへのアクセスを提供する。

Datastore API によって、アプリケーションは、構造化されたデータをユーザーのDropbox アカウントに保存できる。このために、様々なデバイス間における変更の同期化のサポートが組み込まれており、そして自動的なコンフリクト解決手段が備わっている。APIは、オフライン動作をサポートしており、インターネット接続が復帰するとアップデートを行う。

Datastore は、IDとフィールドのセットからなるレコードを持つテーブルで構成されている。各フィールドは、名前と値を持っている。サポートされる値の型は以下の通りだ。

  • String
  • Boolean
  • Integer、 符号付き64ビット。
  • Floating point、IEEE 倍精度
  • Date、POSIX ミリ秒のタイムスタンプ
  • Bytes、画像や圧縮されたデータなどのようなバイナリデータ。各レコードは、100キロバイトのサイズ制限があるので、より大量のデータを記憶するにはSync APIを介してアクセスするDropboxのファイルを使用して行うことができる。フィールドは、ファイルへの参照を持つことになる。
  • List、上記の値のリスト。他のリストを持つことはできない。以下の基本的な操作をサポートする。 put, move, insert, delete。

データストアには、スキーマが無いが、レコードは異なる数のフィールドを持つできる。しかし、「クエリ出来るように、テーブル内のすべてのレコードは大体同数のフィールドを持つ」ことが推奨されている。開発者のニーズに対応するように、複数のテーブルとデータストアを作成することができる。

アプリケーションは、ユーザーのストレージクォータを使用しない場合、データストア全体で5メガバイトに制限されている。その制限を超えると、アプリケーションはユーザのDropboxのクォータを使い始め、その上限に達した場合は、書き込みはできなくなる。

以下はAndroid の例でデフォルトのデータ・ストアをオープンし、新しいテーブルを作成し、2つのフィールド、tasknamecompletedを持つ新しいレコードを挿入し、次にメモリ内のデータを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はベータで、Dropboxの予想では、 「APIは数週間で安定する」。

Dropbox は、iOS用のSync Component for Xamarin を提供しており、C#からデータストアにアクセスできる。Xamarinのデモビデオがいかに速く変更がデバイス間で伝搬していくかを示している。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT