IoT Central では、接続されているデバイスからクラウド ストレージにメディアやその他のファイルをアップロードできます。 IoT Central アプリケーションでファイルのアップロード機能を構成してから、デバイスのコードでファイルのアップロードを実装します。
IoT Central アプリケーション内のデバイスによってアップロードされたファイルを管理およびプレビューすることもできます。
IoT Central REST API を使ってファイルのアップロードを構成する方法については、「ファイル アップロード ストレージ アカウントの構成を追加する」をご覧ください。
前提条件
ファイルのアップロードを構成するには、IoT Central アプリケーションの管理者である必要があります。
アップロードされたファイルを保存するために、Azure ストレージ アカウントとコンテナーが必要です。 ストレージ アカウントとコンテナーがない場合は、 Azure portal でストレージ アカウントを作成します。
デバイスからのファイルのアップロードの構成
デバイスからのファイルのアップロードを構成するには、次の手順に従います。
アプリケーションの [ アプリケーション ] セクションに移動します。
[デバイスのファイル ストレージ] を選択します。
使用するストレージ アカウントとコンテナーを選択します。 ストレージ アカウントがアプリケーションとは異なる Azure サブスクリプションにある場合は、ストレージ アカウントの接続文字列を入力します。
必要に応じて、要求の有効期間を設定するアップロード タイムアウトを調整します。 1 時間から 24 時間に設定できます。
IoT Central でアップロードされたファイルをユーザーが表示および管理できるようにするには、[ アクセスの有効化] を[オン] に設定します。
[保存] を選択します。 状態が [構成済み] と表示されると、デバイスはファイルをアップロードできます。
デバイスからのファイルのアップロードの無効化
IoT Central アプリケーションでデバイス ファイルのアップロードをオフにするには:
アプリケーションの [アプリケーション] セクションに移動します。
[デバイスのファイル ストレージ] を選択します。
[削除] を選択します。
アップロードされたファイルへのアクセスを制御する
ロールとアクセス許可を使用して、アップロードされたファイルを表示および削除できるユーザーを制御します。 詳細については、「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
デバイス テンプレートを作成してモデルをインポートする
ファイルのアップロードをテストするには、サンプル デバイス アプリケーションを実行します。 まず、サンプル デバイスのデバイス テンプレートを作成します。
IoT Central UI でアプリケーションを開きます。
左側のウィンドウで [デバイス テンプレート ] に移動し、[ + 新規] を選択します。
テンプレートの種類として IoT デバイス を選択します。
[ カスタマイズ ] ページで、デバイス テンプレートの ファイル アップロード デバイス サンプル などの名前を入力します。
[Review](レビュー) ページで、 [Create](作成) を選択します。
[ モデルのインポート] を選択し、前 に ダウンロードしたリポジトリの
iotc-file-upload-device\setup
フォルダーからFileUploadDeviceDcm.jsonモデル ファイルをアップロードします。[ 発行] を選択して、デバイス テンプレートの作成を完了します。
デバイスを追加する
Azure IoT Central アプリケーションへ新しいデバイスを追加するには、次の操作を実行します。
左側のウィンドウで [デバイス ] に移動します。
前に作成した ファイル アップロード デバイス サンプル デバイス テンプレートを選択します。
[+ 新規] を選択し、[ 作成] を選択します。
作成したデバイスを選択し、[ 接続] を選択します。
ID scope
、Device ID
、Primary 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 です。
[ 生データ ] タブを選択して、ファイルのアップロードの状態を確認します。
REST API 呼び出しを行って、ストレージ コンテナー内のファイルアップロードの状態を確認することもできます。