次の方法で共有


ファイルをデバイスからクラウドにアップロードする

IoT Central では、接続されているデバイスからクラウド ストレージにメディアやその他のファイルをアップロードできます。 IoT Central アプリケーションでファイルのアップロード機能を構成してから、デバイスのコードでファイルのアップロードを実装します。

IoT Central アプリケーション内のデバイスによってアップロードされたファイルを管理およびプレビューすることもできます。

IoT Central REST API を使ってファイルのアップロードを構成する方法については、「ファイル アップロード ストレージ アカウントの構成を追加する」をご覧ください。

前提条件

ファイルのアップロードを構成するには、IoT Central アプリケーションの管理者である必要があります。

アップロードされたファイルを保存するために、Azure ストレージ アカウントとコンテナーが必要です。 ストレージ アカウントとコンテナーがない場合は、 Azure portal でストレージ アカウントを作成します

デバイスからのファイルのアップロードの構成

デバイスからのファイルのアップロードを構成するには、次の手順に従います。

  1. アプリケーションの [ アプリケーション ] セクションに移動します。

  2. [デバイスのファイル ストレージ] を選択します。

  3. 使用するストレージ アカウントとコンテナーを選択します。 ストレージ アカウントがアプリケーションとは異なる Azure サブスクリプションにある場合は、ストレージ アカウントの接続文字列を入力します。

  4. 必要に応じて、要求の有効期間を設定するアップロード タイムアウトを調整します。 1 時間から 24 時間に設定できます。

  5. IoT Central でアップロードされたファイルをユーザーが表示および管理できるようにするには、[ アクセスの有効化] を[オン] に設定します。

  6. [保存] を選択します。 状態が [構成済み] と表示されると、デバイスはファイルをアップロードできます。

適切に構成されたファイルのアップロードを示すスクリーンショット。

デバイスからのファイルのアップロードの無効化

IoT Central アプリケーションでデバイス ファイルのアップロードをオフにするには:

  1. アプリケーションの [アプリケーション] セクションに移動します。

  2. [デバイスのファイル ストレージ] を選択します。

  3. [削除] を選択します。

アップロードされたファイルへのアクセスを制御する

ロールとアクセス許可を使用して、アップロードされたファイルを表示および削除できるユーザーを制御します。 詳細については、「IoT Central アプリケーションでユーザーとロールを管理する」>「デバイスの管理」を参照してください。

デバイスからのファイルのアップロード

IoT Central では、IoT Hub のファイルアップロード機能を使用して、デバイスがファイルをアップロードできるようにします。 デバイスからファイルをアップロードする方法を示すサンプル コードについては、 IoT Central ファイルアップロード デバイスのサンプルを参照してください。

アップロードしたファイルを表示および管理する

ファイル アップロード構成のファイルへのアクセスを有効にすると、適切なアクセス許可を持つユーザーは、アップロードされたファイルを表示および削除できます。

重要

デバイスに関連付けられている BLOB コンテナー フォルダー内のすべてのファイルは、デバイスがアップロードしなかったファイルを含め、そのデバイスの [ ファイル] ビュー に表示されます。

アップロードしたファイルを表示および削除するには、デバイスの [ファイル ] ビューに移動します。 このページでは、アップロードされたファイルのサムネイルを表示し、ギャラリーとリスト ビューを切り替えることができます。 それぞれのファイルに、ダウンロードと削除のオプションがあります。

アップロードされたファイルのギャラリー ビューを示すスクリーンショット。

ヒント

BLOB ストレージにアップロードされたときにファイルに割り当てられた MIME の種類によって、そのファイルの種類が決まります。 既定の型は binary/octet-stream です。

ファイル名でフィルター処理し、表示する列を選択して、リスト ビューをカスタマイズします。

ファイルの内容をプレビューし、詳細を取得するには、それを選択します。 IoT Central では、テキストや画像などの一般的なファイルの種類のプレビューがサポートされています。

テキスト ファイルのプレビューを示すスクリーンショット。

ファイルのアップロードをテストする

IoT Central アプリケーションで ファイルのアップロードを構成 したら、サンプル コードを使用してテストします。 次のコマンドを使用して、サンプル リポジトリをローカル コンピューター上の適切な場所に複製し、依存関係をインストールします。

git clone https://github.com/azure-Samples/iot-central-file-upload-device
cd iotc-file-upload-device
npm i
npm build

デバイス テンプレートを作成してモデルをインポートする

ファイルのアップロードをテストするには、サンプル デバイス アプリケーションを実行します。 まず、サンプル デバイスのデバイス テンプレートを作成します。

  1. IoT Central UI でアプリケーションを開きます。

  2. 左側のウィンドウで [デバイス テンプレート ] に移動し、[ + 新規] を選択します。

  3. テンプレートの種類として IoT デバイス を選択します。

  4. [ カスタマイズ ] ページで、デバイス テンプレートの ファイル アップロード デバイス サンプル などの名前を入力します。

  5. [Review](レビュー) ページで、 [Create](作成) を選択します。

  6. [ モデルのインポート] を選択し、前 ダウンロードしたリポジトリの iotc-file-upload-device\setup フォルダーからFileUploadDeviceDcm.jsonモデル ファイルをアップロードします。

  7. [ 発行] を選択して、デバイス テンプレートの作成を完了します。

デバイスを追加する

Azure IoT Central アプリケーションへ新しいデバイスを追加するには、次の操作を実行します。

  1. 左側のウィンドウで [デバイス ] に移動します。

  2. 前に作成した ファイル アップロード デバイス サンプル デバイス テンプレートを選択します。

  3. [+ 新規] を選択し、[ 作成] を選択します。

  4. 作成したデバイスを選択し、[ 接続] を選択します。

ID scopeDevice IDPrimary key の値をコピーします。 これらの値は、デバイス サンプル コードで使用します。

サンプル コードを実行します。

VS コードでダウンロードした Git リポジトリを開きます。 プロジェクトのルートに ".env" ファイルを作成し、前にコピーした値を追加します。 ファイルは次のサンプルのようになります。値は次のようになります。

scopeId=<YOUR_SCOPE_ID>
deviceId=<YOUR_DEVICE_ID>
deviceKey=<YOUR_PRIMARY_KEY>
modelId=dtmi:IoTCentral:IotCentralFileUploadDevice;1

VS コードでダウンロードした Git リポジトリを開きます。 サンプルを実行またはデバッグするには、 F5 キーを押します。 ターミナル ウィンドウに、デバイスの登録と IoT Central への接続が表示されます。

Starting IoT Central device...
 > Machine: Windows_NT, 8 core, freemem=6674mb, totalmem=16157mb
Starting device registration...
DPS registration succeeded
Connecting the device...
IoT Central successfully connected device: 7z1xo26yd8
Sending telemetry: {
    "TELEMETRY_SYSTEM_HEARTBEAT": 1
}
Sending telemetry: {
    "TELEMETRY_SYSTEM_HEARTBEAT": 1
}
Sending telemetry: {
    "TELEMETRY_SYSTEM_HEARTBEAT": 1
}

サンプル プロジェクトには、datafile.jsonという名前のサンプル ファイルが含 まれています 。 このファイルは、IoT Central アプリケーションで [ファイルのアップロード ] コマンドを使用するとアップロードされます。

アップロードをテストするには、アプリケーションを開き、作成したデバイスを選択します。 [ コマンド ] タブを選択し、[ 実行 ] ボタンを選択します。 [実行] を選択すると、IoT Central アプリケーションによってデバイス上でダイレクト メソッドが呼び出され、ファイルがアップロードされます。 このダイレクト メソッドは、/device.ts ファイルのサンプル コードで確認できます。 このメソッドの名前は uploadFileCommand です。 アップロードをテストするには、アプリケーションを開き、作成したデバイスを選択します。 [ コマンド ] タブを選択し、[ 実行 ] ボタンを選択します。 [実行] を選択すると、IoT Central によってデバイス上でダイレクト メソッドが呼び出され、ファイルがアップロードされます。 このメソッドは 、/device.ts ファイルのサンプル コードで確認できます。 このメソッドの名前は uploadFileCommand です。

[ 生データ ] タブを選択して、ファイルのアップロードの状態を確認します。

ファイル アップロードの検証方法の UI を示すスクリーンショット。

REST API 呼び出しを行って、ストレージ コンテナー内のファイルアップロードの状態を確認することもできます。