Bucket の作成

Kii Cloud にデータを格納するにはまず Bucket を作成する必要があります。

Bucket の名前

Bucket を作成する際には、下記の例外を除いて任意の名前をつけることができます。この名前は作成済みの Bucket を参照するときに使用します。

Bucket の命名に関するルールは次のとおりです。

  • 以下は予約語のため利用できません。
    • users
    • devices
    • installations
    • internal
    • things
  • "_"(アンダースコア)で始まる名前は利用できません。
  • 英数字、"_"(アンダースコア)、"-"(ハイフン)から構成される 2~64 文字の名前として指定します。

  • Bucket の名前はアプリケーションスコープ、グループスコープ、ユーザースコープで同じものを使用できますが、それぞれ違う Bucket として認識されます。

Bucket の名前は、本ガイドやリファレンスマニュアルでは {BUCKET_ID} として表現されています。{BUCKET_ID} には Bucket の名前を指定してください。

Object Bucket

Bucket はアプリケーションスコープ、グループスコープ、ユーザースコープのいずれのスコープにも作成できます。

Bucket のスコープに応じて、REST のリソースが次のように決定されます。

スコープ リソース URL
アプリケーション https://api-jp.kii.com/api/apps/{APP_ID}/buckets/{BUCKET_ID}
グループ https://api-jp.kii.com/api/apps/{APP_ID}/groups/{GROUP_ID}/buckets/{BUCKET_ID}
ユーザー https://api-jp.kii.com/api/apps/{APP_ID}/users/<selector>/buckets/{BUCKET_ID}
Thing https://api-jp.kii.com/api/apps/{APP_ID}/things/{THING_ID}/buckets/{BUCKET_ID}

ユーザースコープの <selector> 部分の指定方法は、リソース URL とユーザーの表現 をご覧ください。また、Thing スコープの {THING_ID} 部分の指定方法は リソース URL と Thing の表現 をご覧ください。

実際に Object Bucket にアクセスし、Bucket 内に Object を作成する例を以下に挙げます。

  • アプリケーションスコープ

    curl -v -X POST \
      -H "Authorization: Bearer {ACCESS_TOKEN}" \
      -H "Content-Type: application/vnd.{APP_ID}.mydata+json" \
      "https://api-jp.kii.com/api/apps/{APP_ID}/buckets/{BUCKET_ID}/objects" \
      -d '{"score": 1800, "name": "game1"}'
    

    前述のように、{BUCKET_ID} には Bucket の名前を指定します。

    アプリケーションスコープはすべてのユーザーから参照できるため、モバイルアプリで利用できるデータを置く場所としても利用できます。設定情報やテキストデータなどの JSON 形式で表現できるデータであれば、キーと値のペアとして KiiObject に格納しておくことができます。また、画像やサウンドなどのリソースであれば、Object Body としてアップロードしておくことができます。

    なお、アプリケーションスコープを使用する場合はセキュリティにご注意ください。セキュリティ に示すように、アプリケーションスコープは AppID と AppKey があれば、モバイルアプリ外からもアクセスできるため、顧客情報のような機密情報を保存する用途には向いていません。このような場合は、Server Code と ACL の削除を使って、管理者だけからアクセスできる領域を用意することで回避できます。実装方法のヒントは 管理者 をご覧ください。

  • グループスコープ

    curl -v -X POST \
      -H "Authorization: Bearer {ACCESS_TOKEN}" \
      -H "Content-Type: application/vnd.{APP_ID}.mydata+json" \
      "https://api-jp.kii.com/api/apps/{APP_ID}/groups/{GROUP_ID}/buckets/{BUCKET_ID}/objects" \
      -d '{"score": 1800, "name": "game1"}'
    
  • ユーザースコープ

    curl -v -X POST \
      -H "Authorization: Bearer {ACCESS_TOKEN}" \
      -H "Content-Type: application/vnd.{APP_ID}.mydata+json" \
      "https://api-jp.kii.com/api/apps/{APP_ID}/users/me/buckets/{BUCKET_ID}/objects" \
      -d '{"score": 1800, "name": "game1"}'
    
  • Thing スコープ

    curl -v -X POST \
      -H "Authorization: Bearer {ACCESS_TOKEN}" \
      -H "Content-Type: application/vnd.{APP_ID}.mydata+json" \
      "https://api-jp.kii.com/api/apps/{APP_ID}/things/{THING_ID}/buckets/{BUCKET_ID}/objects" \
      -d '{"score": 1800, "name": "game1"}'
    

Bucket 一覧機能の実装ヒント

Bucket 一覧の機能が必要な場合、アプリ側での実装が必要となります。

通常、Bucket は Bucket 名を使ってプログラムから固定的にアクセスするため、一覧が必要となるケースはあまりないはずです。動的に Bucket を生成するような特殊なケースで一覧が必要な場合は、アプリケーションスコープに Bucket 名の一覧の情報を格納するなどの方法をとれます。実装方法は、ユーザー一覧の実装方法 を参考にしてください。