Object Body の移動

Object Body を、ある KiiObject から他の KiiObject に移動できます。Object Body の移動は、同一スコープ内で行うことも、スコープをまたいで行う(例:アプリケーションスコープの KiiObject からユーザースコープの KiiObject に移動する)ことも出来ます。

Object Body は、以下の条件が満たされる場合に移動可能です。

  • 移動元と移動先の KiiObject の両方に対して、読み取りと更新削除権限の両方を持っていること。
  • Object Body 移動時に、移動元と移動先の KiiObject が存在すること。
  • 移動元 KiiObject が Object Body を持っていること。

移動先 KiiObject が Object Body を持っている場合は、移動した Object Body により上書きされます。また、公開済み Object Body を移動すると、以後この Object Body にアクセスできなくなります。

移動先 KiiObject の指定はスコープ、Bucket ID、Object ID で行います。スコープは以下のいずれかの形式で指定します。

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

    "targetObjectScope" : {
      "appID" : "{APP_ID}",
      "type" : "APP"
    }
    
  • グループスコープ:

    "targetObjectScope" : {
      "appID" : "{APP_ID}",
      "groupID" : "{GROUP_ID}",
      "type" : "APP_AND_GROUP"
    }
    
  • ユーザースコープ:

    "targetObjectScope" : {
      "appID" : "{APP_ID}",
      "userID" : "{USER_ID}",
      "type" : "APP_AND_USER"
    }
    

アプリケーションスコープの KiiObject からユーザースコープの KiiObject に Object Body を移動する例を以下に挙げます。

curl -v -X POST \
  -H "Authorization: Bearer {ACCESS_TOKEN}" \
  -H "Content-Type: application/vnd.kii.ObjectBodyMoveRequest+json" \
  "https://api-jp.kii.com/api/apps/{APP_ID}/buckets/{SOURCE_BUCKET_ID}/objects/{SOURCE_OBJECT_ID}/body/move" \
  -d '{
  "targetObjectScope" : {
    "appID" : "{APP_ID}",
    "userID" : "{USER_ID}",
    "type" : "APP_AND_USER"
  },
  "targetBucketID" : "{TARGET_BUCKET_ID}",
  "targetObjectID" : "{TARGET_OBJECT_ID}"
  }'

移動に成功すると Kii Cloud は 204 応答を返します。