Soracom

Users

ドキュメント
Home ドキュメント SORACOM Harvest Getting Started with SORACOM Harvest Files

SORACOM Harvest Files にファイルをアップロードする

Harvest Files にファイルをアップロードします。

Harvest Files への書き込み料金が発生します

Harvest Files にファイルをアップロード (保存) すると、利用料金が発生します。詳しくは、SORACOM Harvest Files の料金プラン を参照してください。

同一のファイル名に送信した場合はファイルは上書きされます

たとえば、[デフォルトパス] を指定した場合、ファイル名を指定せずに送信したときはファイルは上書きされます。なお、[デフォルトパス] にプレースホルダー (:imsi または :time) を指定すると、IMSI やファイルを送信した UNIX 時間 (ミリ秒) がファイル名に含まれるため、上書きされにくくなることが期待できます。[デフォルトパス] については、Harvest Files を有効化する を参照してください。

デバイスのファイルを Harvest Files にアップロードする

操作を始める前に準備が必要です (クリックして確認してください)

(1) SORACOM Air for セルラーの IoT SIM、および IoT SIM を利用できるデバイスを準備する

各種デバイスでの IoT SIM の使用方法については 各種デバイスで SORACOM Air を使用する を参照してください。

(2) Harvest Files を有効化する

ファイルをアップロードするデバイスが利用する IoT SIM の Harvest Files を有効化します

準備完了

Harvest Files の HTTP (セルラー通信経由のアップロード) のエントリポイント に、IoT SIM を利用するデバイスから HTTP POST もしくは PUT リクエストを送信します。

たとえば、以下のようにアップロードすると、デバイスに保存されているファイル「a.png」が、Harvest Files の「/logs/abc.png」にアップロードされます。送信するファイルの名前やパスは適宜読み替えてください。

$ curl -v -X PUT http://harvest-files.soracom.io/logs/abc.png \
-H "Content-type: image/png" \
--data-binary @a.png
import requests

header = {"Content-Type": "image/png"}
with open("/path/to/a.png", "rb") as image:
  response = requests.post("http://harvest-files.soracom.io/logs/abc.png", headers=header, data=image)
  print(response.status_code)
  print(response.text)
[デフォルトパス] を設定すると保存パスを省略できます

グループ設定で [デフォルトパス] を設定している場合は、以下のように保存パス (logs/abc.png) を省略してもファイルを送信できます。以下のコマンドを実行すると、ファイル「a.png」は、グループ設定の [デフォルトパス] で指定したパスおよびファイル名でアップロードされます。

$ curl -v -X PUT http://harvest-files.soracom.io/ \
-H "content-type:image/png" \
--data-binary @a.png

ただし、[デフォルトパス] が空欄または / に設定された状態で、上記のコマンドを実行すると、以下のようなエラーメッセージが表示されます。[デフォルトパス] にファイル名まで入力してください。

{"message":"Invalid path. request path: /, configured path "}

SORACOM API で Harvest Files にアップロードする

サーバーなど、IoT SIM を利用しないシステムでも、SORACOM API を利用すると Harvest Files にファイルをアップロードできます。

たとえば、以下のようにアップロードすると、「test.sh」が Harvest Files の「/sample/test.sh」にアップロードされます。${X_SORACOM_API_KEY}${X_SORACOM_TOKEN} の取得方法は、SORACOM API 利用ガイド を参照してください。

$ curl -X PUT "https://api.soracom.io/v1/files/private/sample/test.sh" \
-H "X-Soracom-API-Key: ${X_SORACOM_API_KEY}" \
-H "X-Soracom-Token: ${X_SORACOM_TOKEN}" \
-H "Content-Type: text/x-sh" \
--data-binary @test.sh 
SAM ユーザーに割り当てる権限に注意してください

たとえば、ファイルのアップロード (FileEntry:putFile API) やファイル削除 (FileEntry:deleteFile API) を制限できます。詳しくは、アクセス管理 (SORACOM Access Management: SAM) を参照してください。

SORACOM API でアップロードする際は [デフォルトパス] は無視されます

SORACOM API でアップロードする際は、グループ設定の [デフォルトパス] は反映されません。

{scope} について

Harvest Files にファイルをアップロードする場合は、{scope}private を指定します。public を指定するとアップロードできません。

ユーザーコンソールでファイルを Harvest Files にアップロードする

  1. ユーザーコンソール にログインし、ファイルが保存されているカバレッジタイプを変更します。

    たとえば、グローバルカバレッジの Harvest Files にファイルが保存されている場合は、グローバルカバレッジの表示に変更します。詳しくは、SORACOM ユーザーコンソールで表示するカバレッジタイプを変更する を参照してください。

  2. [メニュー][データ収集・蓄積・可視化][SORACOM Harvest Files] の順にクリックします。

    SORACOM Harvest Files の画面が表示されます。

  3. [アップロード] をクリックします。

  4. [参照] をクリックして、ファイルを選択します。

    [アップロード先のフルパス] に「/」と選択したファイルのファイル名が表示されます。

  5. [アップロード先のフルパス] にアップロード先のフルパスを入力して、[アップロード] をクリックします。

    たとえば、「/path/to/test.jpg」を入力すると、path ディレクトリと、path ディレクトリの中に to ディレクトリが自動的に作成され、test.jpg がアップロードされます。

    ファイルのアップロードが完了すると、アップロードしたファイルが表示されます。

    • パンくずリストをクリックすると、上の階層のディレクトリに移動できます。
    • パスを編集して、[開く] をクリックすると、指定したディレクトリに移動できます。

    Harvest Files からダウンロードせずに内容を確認することはできません。ダウンロードする手順について詳しくは、SORACOM Harvest Files からファイルをダウンロード / 削除する を参照してください。

    • アップロードしたときのコンテンツタイプは、手順 4 でファイルを選択したときに決定されます。たとえば、手順 5 で [アップロード先のフルパス] で拡張子を変更しても、コンテンツタイプは変更されません。
    • Harvest Files にファイルをアップロードすると、自動的に Etag (ファイルのエンティティタグ) が設定されます。