디바이스에서 클라우드로 파일 업로드

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 파일 업로드 디바이스 샘플을 참조하세요.

업로드된 파일 보기 및 관리

파일 업로드 구성에서 파일에 대한 액세스를 사용하도록 설정한 경우 올바른 권한이 있는 사용자는 업로드된 파일을 보고 삭제할 수 있습니다.

Important

디바이스와 연결된 Blob 컨테이너 폴더의 모든 파일은 해당 디바이스의 파일 보기에 표시됩니다. 여기에는 디바이스에서 업로드하지 않은 파일이 포함됩니다.

업로드된 파일을 보고 삭제하려면 디바이스의 파일 보기로 이동합니다. 이 페이지에서 업로드된 파일의 썸네일을 확인하고 갤러리와 목록 보기 간에 전환할 수 있습니다. 각 파일에는 다운로드하거나 삭제하는 옵션이 있습니다.

업로드된 파일의 갤러리 보기를 보여 주는 스크린샷

파일 형식은 Blob Storage에 업로드될 때 파일에 할당된 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 scope, Device 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입니다.

원시 데이터 탭을 선택하여 파일 업로드 상태를 확인합니다.

파일 업로드를 확인하는 방법에 대한 UI를 보여 주는 스크린샷

또한 REST API 호출을 수행하여 스토리지 컨테이너의 파일 업로드 상태를 확인할 수 있습니다.