IoT Central 可讓您將媒體和其他檔案從連線的裝置上傳至雲端儲存體。 您可以在 IoT Central 應用程式中設定檔案上傳功能,然後在裝置程式碼中實行檔案上傳作業。
您也可以管理及預覽 IoT Central 應用程式內裝置上傳的檔案。
若要了解如何使用 IoT Central REST API 來設定檔案上傳,請參閱新增檔案上傳儲存體帳戶設定。
必要條件
您必須是IoT Central 應用程式中的系統管理員,才能設定檔案上傳。
您需要 Azure 儲存體帳戶和容器來儲存上傳的檔案。 如果您沒有記憶體帳戶和容器,請在 Azure 入口網站 中建立記憶體帳戶。
設定裝置檔案上傳
如何設定裝置檔案上傳:
移至應用程式中的 [ 應用程式 ] 區段。
選取 [裝置檔案儲存體]。
選取要使用的儲存體帳戶和容器。 如果記憶體帳戶位於與您應用程式不同的 Azure 訂用帳戶中,請輸入記憶體帳戶連接字串。
如有需要,請調整上傳超時時間,以設置請求的有效期限。 您可以將它設定為 1 到 24 小時。
若要讓使用者在 IoT Central 中檢視及管理上傳的檔案,請將 啟用存取 設定為 開啟。
選取 [儲存]。 當狀態顯示 [ 已設定] 時,裝置可以上傳檔案。
停用裝置檔案上傳
若要關閉 IoT Central 應用程式中的裝置檔案上傳:
瀏覽至您應用程式中的 [應用程式] 區段。
選取 [裝置檔案儲存體]。
選取 [刪除]。
控制對所上傳檔案的存取
可使用角色和權限來控制可檢視和刪除上傳檔案的人員。 若要深入了解,請參閱管理 IoT Central 應用程式中的使用者和角色 > 管理裝置。
從裝置上傳檔案
IoT Central 會使用 IoT 中樞的檔案上傳功能,讓裝置上傳檔案。 如需示範如何從裝置上傳檔案的範例程序代碼,請參閱 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裝置 。
在自訂頁面上,為裝置範本輸入名稱,例如檔案上傳裝置範例。
在 [檢閱] 頁面上,選取 [建立]。
選取 [匯入模型],然後從您先前下載之存放庫中的資料夾上傳
iotc-file-upload-device\setup模型檔案。選取 [發佈 ] 以完成建立裝置範本。
新增裝置
將裝置新增至 Azure IoT Central 應用程式:
移至左窗格中的 [裝置 ]。
選取您稍早建立的 檔案上傳裝置範例 裝置範本。
選取 [+ 新增],然後選取 [ 建立]。
選取您建立的裝置,然後選取 [ 連線]。
複製 ID scope、Device ID 和 Primary key 的值。 您將在裝置程式碼範例中使用這些值。
執行範例程式碼
開啟您在 VS Code 中下載的 Git 存放庫。 在專案的根目錄建立「.env」檔案,並新增您先前複製的值。 檔案看起來應該像這個範例,其中包含您的值:
scopeId=<YOUR_SCOPE_ID>
deviceId=<YOUR_DEVICE_ID>
deviceKey=<YOUR_PRIMARY_KEY>
modelId=dtmi:IoTCentral:IotCentralFileUploadDevice;1
開啟您在 VS Code 中下載的 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 呼叫,以檢查記憶體容器中的檔案上傳狀態。