Object Body のアクセス
ファイルなどの大きなデータを KiiObject に紐付けて管理することができます。このデータのことを Object Body と呼びます。
たとえば、ある動画に関するメタデータをキーと値のペアとして KiiObject に保存しつつ、実際の動画ファイルは Object Body としてこの KiiObject に紐付けた形で Kii Cloud に保存することができます。
Kii Cloud では、Object Body に対して次のような機能を提供しています。
中断/再開可能な転送
ファイルを Object Body としてアップロードしたりダウンロードしたりできます。転送途中での中断と再開をサポートした方式です。この方式は Android、iOS、REST API のみでサポートしています。
iOS では、Background Transfer と Kii Cloud SDK 共通の構成による転送の両方をサポートします。Background Transfer を使うと、ファイル転送のプロセスを OS 側に依頼することで効率的にファイルを転送できます。
一括転送
ファイルを Object Body としてアップロードしたりダウンロードしたりできます。転送途中での中断と再開をサポートしない方式です。
Object Body の移動
ある KiiObject の Object Body を、他の KiiObject に移動できます。この機能は JavaScript と REST API のみでサポートしています。
Object Body の公開
Object Body を Web ブラウザーから閲覧できる形で Web 上に公開できます。
Object Body の削除
Object Body だけを削除することができます。キーと値のペアや KiiObject そのものは、そのまま残ります。
各プラットフォームで利用できる機能は以下のとおりです。
機能 | Android | iOS | JavaScript | REST |
---|---|---|---|---|
中断/再開可能な転送 | ◯ | ◯※1 | - | ◯※2 |
一括転送 | ◯ | ◯ | ◯※3 | ◯ |
Object Body の移動 | - | - | ◯ | ◯ |
Object Body の公開 | ◯ | ◯ | ◯ | ◯ |
Object Body の削除 | ◯ | ◯ | ◯ | ◯ |
※1 Background Transfer による方式もサポートしています。
※2 中断/再開操作に伴うデータの分割制御をユーザープログラムで行う必要があります。
※3 Node.js より Kii Cloud SDK for JavaScript を使用する場合、Object Body のアップロードおよびダウンロードは利用できません。
Object Body についての特記事項
Object Body についての特記事項は以下のとおりです。
概念的には JSON ドキュメントと Object Body を 1 つの KiiObject として認識できますが、API ではキーと値のペアと Object Body は別に扱います。
キーと値のペアを設定し、KiiObject を作成したあと、別の API を使って Object Body の作成を行います。
Object Body は 1 つの KiiObject に対して 1 件だけ格納することができます。複数の Object Body を格納することはできません。
たとえば、KiiObject ごとに複数のアイコンを持つような場合、Object Body の代わりに BASE64 等のデータとしてキーと値のペアで保存する設計も選択できます。この場合、キーと値のペアの JSON 形式での表現がサイズ上限の 65534 文字を超えるとエラーになります。
逆に、サイズが限定されるような場合、キーと値のペアとして格納しておくと、KiiObject のクエリーによって他のデータと BASE64 データを同時に取得できるメリットもあります。
Object Body を持った KiiObject のキーと値のペアを更新した場合も、Object Body は元の状態を保持し続けます。