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 は元の状態を保持し続けます。