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) を参照してください。
{scope} について
Harvest Files にファイルをアップロードする場合は、{scope}
に private
を指定します。public
を指定するとアップロードできません。
ユーザーコンソールでファイルを Harvest Files にアップロードする
ユーザーコンソール にログインし、ファイルが保存されているカバレッジタイプを変更します。
たとえば、グローバルカバレッジの Harvest Files にファイルが保存されている場合は、グローバルカバレッジの表示に変更します。詳しくは、SORACOM ユーザーコンソールで表示するカバレッジタイプを変更する を参照してください。
→ → の順にクリックします。
SORACOM Harvest Files の画面が表示されます。
をクリックします。
をクリックして、ファイルを選択します。
に「/」と選択したファイルのファイル名が表示されます。
にアップロード先のフルパスを入力して、 をクリックします。
たとえば、「/path/to/test.jpg」を入力すると、path ディレクトリと、path ディレクトリの中に to ディレクトリが自動的に作成され、test.jpg がアップロードされます。
ファイルのアップロードが完了すると、アップロードしたファイルが表示されます。
- パンくずリストをクリックすると、上の階層のディレクトリに移動できます。
- パスを編集して、 をクリックすると、指定したディレクトリに移動できます。
Harvest Files からダウンロードせずに内容を確認することはできません。ダウンロードする手順について詳しくは、SORACOM Harvest Files からファイルをダウンロード / 削除する を参照してください。
- アップロードしたときのコンテンツタイプは、手順 4 でファイルを選択したときに決定されます。たとえば、手順 5 で で拡張子を変更しても、コンテンツタイプは変更されません。
- Harvest Files にファイルをアップロードすると、自動的に Etag (ファイルのエンティティタグ) が設定されます。