ファイル配信機能仕様

ここでは、プラットフォームから通信モジュールにファイルを配信する機能に関する仕様を記載します。

概要

sakura.ioでは、通常JSONと呼ばれる形式に沿ってデータをやり取りしており、形式と異なるデータを送ることはできません。 ファイル配信機能は、デバイスの要求に従い、sakura.ioモジュールを介して任意のファイルサーバに配置された不定形のデータファイルをデバイスに送信することができる機能です。

本機能により、遠隔に設置済みのデバイス等、ファームウェアアップデートが困難なデバイスのバグフィックス機能実現に役立ちます。

ファイル配信機能

事前にお客様のWebサーバにいくつかのファイルを設置していただき、URLをコントロールパネル、またはAPIで指定していただく必要があります。 コントロールパネルの操作方法は、 プロジェクトの操作 をご参照ください。

ポイント消費

ファイル容量512バイトにつき、sakura.ioポイントを1ポイント消費します。

デバイス側のサンプルプログラム

ファイル配信機能を使用するには、デバイス側でのコマンド発行が必要になります。 下記にArduino用のサンプルコードを示しますので、以下を参考にデバイスからモジュールに対しコマンドを発行してください。

ファイル配信機能 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認証など何も制限がかかっていない事をご確認してください。