画像を SORACOM Harvest Files にアップロードする
撮影した画像を安全かつ簡単に SORACOM 上のファイルサービスにアップロードしてみましょう。
SORACOM Harvest Files とは
SORACOM Harvest Files (以下、Harvest Files) とは、IoT デバイスからのファイルを収集するサービスです。SORACOM Air が提供するセルラー通信を使って、IoT デバイスの画像やログファイル等を手間なく SORACOM プラットフォームにアップロードできます。SORACOM Harvest Data が JSON 形式でデータを送信してグラフなどの形式で可視化できるのに対して、Harvest Files は画像やログなどファイルを保管できるサービスです。
Harvest Files を使うには追加の費用がかかります。詳しくは、SORACOM Harvest Data/Files の 料金プラン を参照してください。
SORACOM Harvest Files を有効にする
Harvest Files を使うには、Group の設定で、Harvest Files を有効にする必要があります。
グループ設定を開き、Harvest Files を開いて、ON にして、保存を押します。
プログラムのダウンロード・実行
実行コマンド
sudo wget http://soracom-files.s3.amazonaws.com/upload_harvestFiles.sh
sudo chmod +x upload_harvestFiles.sh
./upload_harvestFiles.sh /var/www/html/image.jpg
実行例
pi@raspberrypi:~ $ sudo wget http://soracom-files.s3.amazonaws.com/upload_harvestFiles.sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 519 100 519 0 0 310 0 0:00:01 0:00:01 --:--:-- 310
pi@raspberrypi:~ $ sudo chmod +x upload_harvestFiles.sh
pi@raspberrypi:~ $ ./upload_harvestFiles.sh /var/www/html/image.jpg
upload path is /images/image.jpg
uploading /var/www/html/image.jpg ...
success!
トラブルシュート
以下のようなエラーメッセージが出た場合には、設定を確認してください。
failure! {"message":"No group ID is specified: xxxxxxxxxxxxxxx"}
: IoT SIM にグループが設定されていない。failure! {"message":"Harvest files is disabled. Please set { enabled: true }"}
: グループで Harvest Files を有効にしていない。jpgファイルが指定されていません
: 実行例のように、引数にアップロードする画像のパスを指定していない。
画像のアップロードを確認
SORACOM ユーザーコンソールで、アップロードされたファイルを確認してみましょう。
images ディレクトリの配下に画像ファイルがアップロードされていることが確認できます。
定期的な実行 (cron 設定)
毎分撮影したとしても、必ずしも毎分画像をアップロードする必要はありません。 仮に画像サイズが平均 150KB であるとすると、月間の転送にかかる費用 (s1.minimum を使用した場合) は、以下のとおりです。
頻度 | 転送回数/月 | 転送容量/月 | 概算費用/月 |
---|---|---|---|
毎分 | 43200 | 約 6.3 GiB | 約 1265 円 |
5 分ごと | 8640 | 約 1.3 GiB | 約 253 円 |
10 分ごと | 4320 | 約 0.6 GiB | 約 126 円 |
用途やニーズに合わせて頻度を調整してみるとよいでしょう。直近の画像を見たいときは SORACOM Napter でアクセスして見て、全画像は通信料金の安い夜間にスクリプトでアップロードするということも考えられます。
頻度の調整は、やはり cron の設定で行います。毎分送る場合、5 分ごとに送る場合の記載例を紹介します。
毎分
* * * * * ~/upload_harvestFiles.sh /var/www/html/image.jpg &> /dev/null
5 分ごと
*/5 * * * * ~/upload_harvestFiles.sh /var/www/html/image.jpg &> /dev/null
しばらくしてから、先ほどの Harvest Files の画面をリロードし、画像が増えていることを確かめましょう。