バイナリ

概要

インベントリはバイナリを保存する可能性がありますが、下記のAPIは「/inventory」では公表されません。

バイナリインターフェースは以下の要素で構成されます。

  • 「バイナリコレクション」リソースは、アップロードされたバイナリに関する情報を有するセットを読み出すとともに、新規バイナリのアップロードを可能にします。
  • 「バイナリ」リソースは、ダウンロード、更新および削除が可能なバイナリを表わします。

注記:すべてのPUT/POSTリクエストについて、acceptを使用すべきであり、さもなければ空の応答本体が返されます。

バイナリコレクション

BinariesCollection [application/vnd.com.nsn.cumulocity.managedObjectCollection+json]

名称 種別 発生回数 説明
self URI 1 このリソースへのリンク
managedObjects ManagedObject 0..n バイナリオブジェクトのリスト(下記参照)
statistics PagingStatistics 1 ページング統計に関する情報
prev URI 0..1 バイナリオブジェクトの前のページへのリンク(あれば)
next URI 0..1 バイナリオブジェクトの次のページへのリンク(あれば)

バイナリコレクションをGETする

応答本体:マネージドオブジェクトコレクション

要求されるロール: ROLE_INVENTORY_READ

リクエスト例:

GET /inventory/binaries
Host: ...
Authorization: Basic ...

応答例:

HTTP/1.1 200 OK
Content-Type: application/vnd.com.nsn.cumulocity.applicationCollection+json;ver=...
{
    "self" : "...",
    "next" : "...",
    "prev" : "...",
    "managedObjects": [
        {
            "self": "<<Object 1 URL>>",
            "id": "1",
            "name": "my_picture.png",
            "type": "image/png",
            ...
            "_attachments": {
              "my_picture.png": {
                "stub": true,
                "length": 211952,
                "digest": "md5-xyz==",
                "revpos": 2,
                "content_type": "image/png"
              }
            }
        },
        {
            "self": "<<Object 2 URL>>",
            "id": "2",
            "name": "my_compressed_file.zip",
            "type": "application/zip",
            ...
            "_attachments": {
              "my_compressed_file.zip": {
                "stub": true,
                "length": 21152,
                "digest": "md5-xyz==",
                "revpos": 2,
                "content_type": "application/zip"
              }
            }
        }
    ],
    "statistics": {
        "currentPage": 1,
        "pageSize": 5,
        "totalPages": 1
    }
}

POST - 新規バイナリをアップロードする

リクエスト本体:マルチパート

応答本体:マネージドオブジェクト

要求されるロール: ROLE_INVENTORY_ADMIN または ROLE_INVENTORY_CREATE

バイナリをアップロードするには、以下の3通りの形式の値を有するマルチパートが必要です。

  • 「object」値はファイルに関する情報を含むマネージドオブジェクトを格納します。
  • 「filesize」値はバイナリのサイズをバイト単位で格納します。
  • 「file」値はアップロードされることになるバイナリを格納します(ファイルを保存するには、mime-typeがファイルの種別と合致する必要があります)。

リクエスト例:

POST /inventory/binaries
Host: ...
Authorization: Basic ...
Content-Type: multipart/form-data; boundary=--myBoundary

--myBoundary
Content-Disposition: form-data; name="object"

{
  "name":"my-file.pdf",
  "type":"application/pdf",
  ...
}
--myBoundary
Content-Disposition: form-data; name="filesize"

217152
--myBoundary
Content-Disposition: form-data; name="file"; filename="my-file.pdf"
Content-Type: application/pdf

<<file content>>
--myBoundary

応答例:

HTTP/1.1 201 Created
Content-Type: application/vnd.com.nsn.cumulocity.managedObject+json;ver=...
Location: <<URL of new managed object>>

{
  "self": "<<Object 3 URL>>",
  "id": "3",
  "name":"my-file.pdf",
  "type":"application/pdf",
  ...
}

バイナリ

GET - バイナリをダウンロードする

応答本体:バイナリ

要求されるロール:ROLE_INVENTORY_READ

リクエスト例:

GET /inventory/binaries/<<binaryId>>
 ...

応答例:

HTTP/1.1 200 OK
Content-Type: <<depending on binary mime type>>
Content-Disposition: attachment; filename="myfile.ext"

...

PUT - バイナリを差し替える

リクエスト本体:バイナリ

応答本体:マネージドオブジェクト

要求されるロール: ROLE_INVENTORY_ADMIN or ROLE_INVENTORY_CREATE

PUTリクエストでは、マネージドオブジェクトに対応するバイナリのみを差し替えます。 マネージドオブジェクトそのものを変更したい場合、「マネージドオブジェクトを更新する」セクションに記載されている方法でマネージドオブジェクトを直接更新できます。

リクエスト例:

PUT /inventory/binaries/<<binaryId>>
Host: ...
Authorization: Basic ...
Content-Type: <<depending on binary mime type>>

...

バイナリをDELETEする

リクエスト本体:N/A

応答メッセージ本体:N/A

要求されるロール: ROLE_INVENTORY_ADMIN or ROLE_INVENTORY_CREATE

注記:リクエストは、バイナリと、情報を含む関連マネージドオブジェクトを削除します。

リクエスト例:

DELETE /inventory/binaries/<<binaryId>>
Host: ...
Authorization: Basic ...

応答例:

HTTP/1.1  204 NO CONTENT