從裝置將檔案上傳至雲端

IoT Central 可讓您將媒體和其他檔案從連線的裝置上傳至雲端儲存體。 您可以在 IoT Central 應用程式中設定檔案上傳功能,然後在裝置程式碼中實行檔案上傳作業。

您可以選擇性地管理及預覽 IoT Central 應用程式內部裝置上傳的檔案。

若要了解如何使用 IoT Central REST API 來設定檔案上傳,請參閱新增檔案上傳儲存體帳戶設定

必要條件

您必須是 IoT Central 應用程式的系統管理員,才能設定檔案上傳。

您需要 Azure 儲存體帳戶和容器來儲存上傳的檔案。 如果您目前沒有儲存體帳戶,請在 Azure 入口網站中建立新儲存體帳戶

設定裝置檔案上傳

如何設定裝置檔案上傳:

  1. 瀏覽至您應用程式中的 [應用程式] 區段。

  2. 選取 [裝置檔案儲存體]

  3. 選取要使用的儲存體帳戶和容器。 如果儲存體帳戶與您的應用程式分屬不同的 Azure 訂閱中,請輸入儲存體帳戶連接字串。

  4. 如有必要,請調整上傳逾時的時間,以設定上傳要求所能維持的有效期限。 有效值為 1 到 24 小時。

  5. 若要讓使用者在 IoT Central 內檢視和管理上傳的檔案,請將 [啟用存取] 設為 [開啟]

  6. 選取 [儲存]。 當狀態顯示為 [已設定] 時,即可從裝置上傳檔案。

顯示正確設定的檔案上傳作業的螢幕擷取畫面。

停用裝置檔案上傳

如何停用裝置至 IoT Central 應用程式的檔案上傳作業:

  1. 瀏覽至您應用程式中的 [應用程式] 區段。

  2. 選取 [裝置檔案儲存體]

  3. 選取 [刪除]

控制對所上傳檔案的存取

可使用角色和權限來控制可檢視和刪除上傳檔案的人員。 若要深入了解,請參閱管理 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

建立裝置範本並匯入模型

若要測試檔案上傳,請執行範例裝置應用程式。 建立要供範例裝置使用的裝置範本。

  1. 在 IoT Central UI 中開啟您的應用程式。

  2. 瀏覽至左窗格中的 [裝置範本] 索引標籤、選取 [+ 新增]

  3. 選擇 [IoT 裝置] 作為範本類型。

  4. 在精靈的 [自訂] 頁面上,輸入裝置範本的名稱,例如「檔案上傳裝置範例」

  5. [檢閱] 頁面上,選取 [建立]

  6. 選取 [匯入模型],然後從您先前所下載存放庫中的資料夾 iotc-file-upload-device\setup 上傳FileUploadDeviceDcm.json 模型檔案。

  7. 選取 [發佈] 以發佈裝置範本。

新增裝置

將裝置新增至 Azure IoT Central 應用程式:

  1. 選擇左窗格上的 [裝置]

  2. 選取您稍早建立的 [檔案上傳裝置範例] 裝置範本。

  3. 選取 [+ 新增],然後選取 [建立]

  4. 選取您所建立的裝置,然後選取 [連線]

複製 ID scopeDevice IDPrimary 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

選取 [原始資料] 索引標籤,來驗證檔案上傳狀態。

顯示如何驗證檔案上傳的 U I 螢幕擷取畫面。

您也可以進行 REST API 呼叫,以驗證儲存體容器中的檔案上傳狀態。