ファイル配信機能仕様¶
ここでは、プラットフォームから通信モジュールにファイルを配信する機能に関する仕様を記載します。
概要¶
sakura.ioでは、通常JSONと呼ばれる形式に沿ってデータをやり取りしており、形式と異なるデータを送ることはできません。 ファイル配信機能は、デバイスの要求に従い、sakura.ioモジュールを介して任意のファイルサーバに配置された不定形のデータファイルをデバイスに送信することができる機能です。
本機能により、遠隔に設置済みのデバイス等、ファームウェアアップデートが困難なデバイスのバグフィックス機能実現に役立ちます。
事前にお客様のWebサーバにいくつかのファイルを設置していただき、URLをコントロールパネル、またはAPIで指定していただく必要があります。 コントロールパネルの操作方法は、 プロジェクトの操作 をご参照ください。
ポイント消費¶
ファイル容量512バイトにつき、sakura.ioポイントを1ポイント消費します。
デバイス側のサンプルプログラム¶
ファイル配信機能を使用するには、デバイス側でのコマンド発行が必要になります。 下記にArduino用のサンプルコードを示しますので、以下を参考にデバイスからモジュールに対しコマンドを発行してください。
リクエストの流れ¶
以下は、ファイル配信機能の、sakura.ioモジュールとsakura.ioのプラットフォーム、またお客様に設置していただいたWebサーバへのアクセスのフロー図となります。
ファイル配信機能では、お客様のWebサーバに対し、二回のリクエストを行います。
1回目のリクエストでは、プラットフォームから、以下の情報がGETパラメータとして渡ります。
パラメータ | 意味 | サンプル | 備考 |
---|---|---|---|
module | 配信先モジュールID | uXXXXXXXXXX | |
number | 配信ファイル番号 | 3 |
リクエストの例¶
GET /sakuraio/file_config?module=uXXXXXXXXXX&number=3 HTTP/1.1
Host: webserver.of.user.example.com
User-Agent: sakura.io-file/v1.0
このリクエストへの応答として、実際に配信するファイルのURLが以下のようなレスポンスで応答される必要があります。
期待するレスポンスの例¶
HTTP/1.1 200 OK
Date: Mon, 29 May 2017 03:51:37 GMT
ETag: "1261-bde-54d67ce05a540"
Last-Modified: Tue, 18 Apr 2017 02:38:37 GMT
Server: nginx
Content-Type: text/plain
Content-Length: 71
https://webserver.of.user.example.com/sakuraio/files/file-to-module.bin
このレスポンスによって示されるURLに設置されたファイルがダウンロードされ、モジュールに配信されます。
※配信ファイルを設置したサーバでは、BASIC認証など何も制限がかかっていない事をご確認してください。