Mengunggah file dari perangkat Anda ke cloud dengan IoT Hub (Java)
Tutorial ini menunjukkan kepada Anda cara menggunakan kemampuan pengunggahan file IoT Hub menggunakan Java. Untuk gambaran umum proses pengunggahan file, lihat Mengunggah File dengan IoT Hub.
Panduan Kirim telemetri dari perangkat ke hub IoT dan tutorial Kirim pesan cloud-ke-perangkat dengan IoT Hub menunjukkan pesan dasar perangkat-ke-cloud dan cloud-ke-perangkat fungsi IoT Hub. Tutorial Mengonfigurasi perutean pesan dengan IoT Hub menunjukkan cara untuk menyimpan pesan perangkat ke cloud secara andal di penyimpanan blob Azure. Namun, dalam beberapa skenario Anda tidak dapat dengan mudah memetakan data yang dikirim perangkat Anda ke pesan perangkat ke cloud yang relatif kecil yang diterima IoT Hub. Contohnya:
- Video
- File besar yang berisi gambar
- Data getaran yang diambil sampelnya pada frekuensi tinggi
- Beberapa bentuk data yang diproses sebelumnya.
File tersebut biasanya diproses secara batch di cloud menggunakan alat seperti Azure Data Factory atau tumpukan Hadoop. Saat Anda perlu mengunggah file dari perangkat, Anda masih dapat menggunakan keamanan dan keandalan IoT Hub. Tutorial ini akan menunjukkan caranya. Juga, ada dua sampel yang terletak di https://github.com/Azure/azure-iot-sdk-java/tree/main/device/iot-device-samples/file-upload-sample/src/main/java/samples/com/microsoft/azure/sdk/iot GitHub.
Catatan
IoT Hub mendukung banyak platform dan bahasa perangkat (termasuk C, .NET, dan JavaScript) melalui SDK perangkat Azure IoT. Lihat Pusat Pengembang Azure IoT untuk petunjuk langkah demi langkah tentang cara menyambungkan peranti Anda ke Azure IoT Hub.
Penting
Fungsionalitas pengunggahan file pada perangkat yang menggunakan autentikasi otoritas sertifikat (OS) X.509 berada dalam pratinjau publik, dan mode pratinjau harus diaktifkan. Ini umumnya tersedia di perangkat yang menggunakan autentikasi thumbprint X.509 atau pengesahan sertifikat X.509 dengan Layanan Provisi Perangkat Azure. Untuk mempelajari selengkapnya tentang autentikasi X.509 dengan IoT Hub, lihat Sertifikat X.509 yang didukung.
Prasyarat
Java SE Development Kit 8. Pastikan Anda memilih Java 8 pada Dukungan jangka panjang untuk mengunduh JDK 8.
Akun Azure aktif. (Jika Anda tidak memiliki akun, Anda dapat membuat akun gratis hanya dalam beberapa menit.)
Pastikan port 8883 terbuka di firewall Anda. Sampel perangkat dalam artikel ini menggunakan protokol MQTT, yang berkomunikasi melalui port 8883. Port ini mungkin diblokir di beberapa lingkungan jaringan perusahaan dan pendidikan. Untuk informasi selengkapnya dan cara mengatasi masalah ini, lihat Menyambungkan ke Azure IoT Hub (MQTT).
Membuat Azure IoT Hub
Bagian ini menjelaskan cara membuat hub IoT menggunakan portal Microsoft Azure.
Masuk ke portal Microsoft Azure.
Di beranda Azure, pilih tombol + Buat sumber daya.
Dari menu Kategori, pilih Internet of Things kemudian IoT Hub.
Pada tab Dasar, lengkapi bidang sebagai berikut:
Langganan: Pilih langganan yang akan digunakan untuk hub Anda.
Grup sumber daya: Pilih grup sumber daya atau buat yang baru. Untuk membuat grup baru, pilih Buat baru dan isi nama yang ingin Anda gunakan. Untuk menggunakan grup sumber daya yang sudah ada, pilih grup sumber daya tersebut. Untuk informasi selengkapnya, lihat Mengelola grup sumber daya Azure Resource Manager.
Wilayah: Pilih wilayah lokasi hub yang Anda inginkan. Pilih lokasi yang terdekat dengan Anda. Beberapa fitur, seperti aliran perangkat IoT Hub, hanya tersedia di wilayah tertentu. Untuk fitur terbatas ini, Anda harus memilih salah satu wilayah yang didukung.
Nama IoT hub: Masukkan nama untuk hub Anda. Nama ini tidak boleh sama secara global, dengan panjang antara 3 dan 50 karakter alfanumerik. Nama ini juga dapat menyertakan karakter tanda hubung (
'-').
Penting
Karena hub IoT akan dapat ditemukan secara umum sebagai titik akhir DNS, pastikan untuk menghindari memasukkan informasi sensitif atau identitas pribadi saat menamainya.
Pilih Berikutnya: Jaringan untuk melanjutkan membuat hub Anda.
Pilih titik akhir yang dapat digunakan perangkat untuk tersambung ke IoT hub Anda. Anda dapat memilih pengaturan default, Akses publik, atau memilih Akses privat. Terima pengaturan default untuk contoh ini.
Pilih Berikutnya: Manajemen untuk terus membuat hub Anda.
Anda dapat menerima pengaturan default di sini. Jika diinginkan, Anda dapat memodifikasi salah satu bidang berikut:
Harga dan tingkatan skala: Tingkatan yang Anda pilih. Anda dapat memilih dari beberapa tingkatan, tergantung pada seberapa banyak fitur yang Anda inginkan dan seberapa banyak pesan yang Anda kirim per hari melalui solusi Anda. Tingkatan gratis dimaksudkan untuk pengujian dan evaluasi. Ini memungkinkan 500 perangkat untuk tersambung ke hub dan hingga 8.000 pesan per hari. Setiap langganan Azure dapat membuat satu hub IoT dalam tingkatan gratis.
Jika Anda sedang bekerja melalui mulai cepat, pilih tingkat gratis.
Unit IoT Hub: Jumlah pesan yang diizinkan per unit per hari tergantung pada tingkatan harga hub Anda. Misalnya, jika Anda ingin hub mendukung 700.000 pesan masuk, Anda memilih dua unit tingkatan S1. Untuk detail tentang opsi tingkatan lainnya, lihat Memilih tingkat Hub IoT yang tepat.
Microsoft Defender for IoT: Aktifkan ini untuk menambahkan lapisan perlindungan ancaman tambahan ke IoT dan perangkat Anda. Opsi ini tidak tersedia untuk hub di tingkatan gratis. Pelajari selengkapnya tentang rekomendasi keamanan untuk IoT Hub di Defender untuk IoT.
Kontrol akses berbasis peran: Pilih bagaimana akses ke IoT hub dikelola, apakah kebijakan akses bersama diizinkan atau hanya kontrol akses berbasis peran yang didukung. Untuk informasi selengkapnya, lihat Mengontrol akses ke IoT Hub menggunakan Azure Active Directory.
Partisi perangkat ke cloud: Properti ini menyambungkan pesan perangkat ke cloud dengan jumlah pembaca pesan secara bersamaan. Sebagian besar hub hanya membutuhkan empat partisi.
Pilih Berikutnya: Tag untuk melanjutkan ke layar berikutnya.
Tag adalah pasangan nama/nilai. Anda dapat menetapkan tag yang sama ke beberapa sumber daya dan grup sumber daya untuk mengkategorikan sumber daya dan mengonsolidasikan penagihan. Dalam dokumen ini, Anda tidak akan menambahkan tag apa pun. Untuk informasi selengkapnya, lihat Menggunakan tag untuk mengatur sumber daya Azure Anda.
Pilih Berikutnya: Tinjau + buat untuk meninjau pilihan Anda. Anda melihat sesuatu yang mirip dengan layar ini, tetapi dengan nilai yang Anda pilih saat membuat hub.
Pilih Buat untuk memulai penyebaran hub baru Anda. Penyebaran Anda akan berlangsung beberapa menit saat hub sedang dibuat. Setelah penyebaran selesai, pilih Buka sumber daya untuk membuka hub baru.
Mendaftarkan perangkat baru di hub IoT
Di bagian ini, Anda membuat identitas perangkat di registri identitas di hub IoT Anda. Perangkat tidak dapat tersambung ke hub kecuali memiliki entri dalam registri identitas. Untuk mengetahui informasi selengkapnya, lihat Panduan pengembang IoT Hub.
Di menu navigasi IoT hub Anda, buka Perangkat, lalu pilih Tambahkan Perangkat untuk menambahkan perangkat di IoT hub Anda.
Pada Buat perangkat, berikan nama untuk perangkat baru Anda, seperti myDeviceId, dan pilih Simpan. Tindakan ini membuat identitas perangkat untuk hub IoT Anda. Biarkan Buat kunci otomatis dicentang agar kunci utama dan sekunder akan dibuat secara otomatis.
Penting
ID perangkat mungkin terlihat dalam log yang dikumpulkan untuk dukungan dan pemecahan masalah pelanggan, jadi pastikan untuk menghindari informasi sensitif saat menamainya.
Setelah perangkat dibuat, buka perangkat dari daftar di panel Perangkat. Salin String Koneksi Utama. String koneksi ini digunakan oleh kode perangkat untuk berkomunikasi dengan hub.
Secara default, kunci dan string koneksi disembunyikan karena merupakan informasi sensitif. Jika Anda mengklik ikon mata, nilainya akan nampak. Tidak perlu mengungkapkannya untuk menyalinnya dengan tombol salin.
Catatan
Registri identitas IoT Hub hanya menyimpan identitas perangkat dan modul untuk memungkinkan akses aman ke hub IoT. Ini menyimpan ID perangkat dan kunci untuk digunakan sebagai info masuk keamanan, dan bendera yang diaktifkan/dinonaktifkan yang dapat Anda gunakan untuk menonaktifkan akses untuk perangkat individual. Jika aplikasi Anda perlu menyimpan metadata khusus perangkat lainnya, aplikasi tersebut harus menggunakan penyimpanan khusus aplikasi. Untuk mengetahui informasi selengkapnya, lihat Panduan pengembang IoT Hub.
Mengaitkan akun Microsoft Azure Storage dengan IoT Hub
Untuk mengunggah file dari perangkat, Anda harus memiliki akun Azure Storage dan kontainer Azure Blob Storage yang terkait dengan hub IoT Anda. Setelah Anda mengaitkan akun penyimpanan dan kontainer dengan hub IoT, hub IoT Anda dapat menyediakan elemen URI SAS saat diminta oleh perangkat. Perangkat kemudian dapat menggunakan elemen ini untuk membangun URI SAS yang digunakan untuk melakukan autentikasi dengan Azure Storage dan mengunggah file ke kontainer blob.
Untuk mengaitkan akun Azure Storage dengan hub IoT Anda:
Di bagian Pengaturan Hub, pilih Unggah file di panel kiri IoT hub Anda.
Di panel Unggahan file, pilih Kontainer Azure Storage. Untuk artikel ini, sebaiknya akun penyimpanan dan IoT Hub Anda berada di wilayah yang sama.
Jika Anda sudah memiliki akun penyimpanan yang ingin digunakan, pilih dari daftar.
Pilih +Akun Storage untuk membuat akun penyimpanan. Masukkan nama akun penyimpanan dan pastikan Lokasi diatur ke wilayah yang sama dengan hub IoT Anda, lalu pilih OK. Akun baru dibuat dalam grup sumber daya yang sama dengan hub IoT Anda. Saat penyebaran selesai, pilih akun penyimpanan dari daftar.
Setelah akun penyimpanan dipilih, panel Kontainer akan terbuka.
Di halaman Kontainer, pilih kontainer blob.
Jika Anda sudah memiliki kontainer blob yang ingin digunakan, pilih dari daftar dan klik Pilih.
Pilih + Kontainer untuk membuat kontainer blob baru. Masukkan nama kontainer baru. Untuk tujuan artikel ini, Anda dapat membiarkan semua bidang lainnya dengan opsi default-nya. Pilih Buat. Setelah penyebaran selesai, pilih kontainer dari daftar dan klik Pilih.
Kembali ke panel Unggahan file, pastikan bahwa pemberitahuan file diatur ke Aktif. Anda dapat membiarkan pengaturan lainnya dengan opsi default-nya. Pilih Simpan dan tunggu hingga pengaturan selesai sebelum berpindah ke bagian selanjutnya.
Untuk petunjuk yang lebih mendetail tentang cara membuat akun Azure Storage, lihat Membuat akun penyimpanan. Untuk petunjuk selengkapnya tentang cara mengaitkan akun penyimpanan dan kontainer blob dengan hub IoT, lihat Mengonfigurasi unggahan file menggunakan portal Azure.
Membuat proyek menggunakan Maven
Buat direktori untuk proyek Anda, dan mulai shell di direktori tersebut. Pada baris perintah, jalankan yang berikut ini
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
Ini menghasilkan direktori dengan nama yang sama dengan artifactId dan struktur proyek standar:
my-app
|-- pom.xml
-- src
-- main
-- java
-- com
-- mycompany
-- app
--App.Java
Menggunakan editor teks, ganti file pom.xml dengan yang berikut ini:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1.0-SNAPSHOT</version>
<name>my-app</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>com.microsoft.azure.sdk.iot</groupId>
<artifactId>iot-device-client</artifactId>
<version>1.30.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.29</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
<shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>with-deps</shadedClassifierName>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
Mengunggah file dari aplikasi perangkat
Salin file yang ingin Anda unggah ke my-app folder di pohon proyek Anda. Menggunakan editor teks, ganti App.java dengan kode berikut. Sediakan string koneksi dan nama file Anda di tempat yang disebutkan. Anda telah menyalin string koneksi perangkat saat mendaftarkan perangkat.
package com.mycompany.app;
import com.azure.storage.blob.BlobClient;
import com.azure.storage.blob.BlobClientBuilder;
import com.microsoft.azure.sdk.iot.deps.serializer.FileUploadCompletionNotification;
import com.microsoft.azure.sdk.iot.deps.serializer.FileUploadSasUriRequest;
import com.microsoft.azure.sdk.iot.deps.serializer.FileUploadSasUriResponse;
import com.microsoft.azure.sdk.iot.device.DeviceClient;
import com.microsoft.azure.sdk.iot.device.IotHubClientProtocol;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URISyntaxException;
import java.util.Scanner;
public class App
{
/**
* Upload a single file to blobs using IoT Hub.
*
*/
public static void main(String[] args)throws IOException, URISyntaxException
{
String connString = "Your device connection string here";
String fullFileName = "Path of the file to upload";
System.out.println("Starting...");
System.out.println("Beginning setup.");
// File upload will always use HTTPS, DeviceClient will use this protocol only
// for the other services like Telemetry, Device Method and Device Twin.
IotHubClientProtocol protocol = IotHubClientProtocol.MQTT;
System.out.println("Successfully read input parameters.");
DeviceClient client = new DeviceClient(connString, protocol);
System.out.println("Successfully created an IoT Hub client.");
try
{
File file = new File(fullFileName);
if (file.isDirectory())
{
throw new IllegalArgumentException(fullFileName + " is a directory, please provide a single file name, or use the FileUploadSample to upload directories.");
}
System.out.println("Retrieving SAS URI from IoT Hub...");
FileUploadSasUriResponse sasUriResponse = client.getFileUploadSasUri(new FileUploadSasUriRequest(file.getName()));
System.out.println("Successfully got SAS URI from IoT Hub");
System.out.println("Correlation Id: " + sasUriResponse.getCorrelationId());
System.out.println("Container name: " + sasUriResponse.getContainerName());
System.out.println("Blob name: " + sasUriResponse.getBlobName());
System.out.println("Blob Uri: " + sasUriResponse.getBlobUri());
System.out.println("Using the Azure Storage SDK to upload file to Azure Storage...");
try
{
BlobClient blobClient =
new BlobClientBuilder()
.endpoint(sasUriResponse.getBlobUri().toString())
.buildClient();
blobClient.uploadFromFile(fullFileName);
}
catch (Exception e)
{
System.out.println("Exception encountered while uploading file to blob: " + e.getMessage());
System.out.println("Failed to upload file to Azure Storage.");
System.out.println("Notifying IoT Hub that the SAS URI can be freed and that the file upload failed.");
// Note that this is done even when the file upload fails. IoT Hub has a fixed number of SAS URIs allowed active
// at any given time. Once you are done with the file upload, you should free your SAS URI so that other
// SAS URIs can be generated. If a SAS URI is not freed through this API, then it will free itself eventually
// based on how long SAS URIs are configured to live on your IoT Hub.
FileUploadCompletionNotification completionNotification = new FileUploadCompletionNotification(sasUriResponse.getCorrelationId(), false);
client.completeFileUpload(completionNotification);
System.out.println("Notified IoT Hub that the SAS URI can be freed and that the file upload was a failure.");
client.closeNow();
return;
}
System.out.println("Successfully uploaded file to Azure Storage.");
System.out.println("Notifying IoT Hub that the SAS URI can be freed and that the file upload was a success.");
FileUploadCompletionNotification completionNotification = new FileUploadCompletionNotification(sasUriResponse.getCorrelationId(), true);
client.completeFileUpload(completionNotification);
System.out.println("Successfully notified IoT Hub that the SAS URI can be freed, and that the file upload was a success");
}
catch (Exception e)
{
System.out.println("On exception, shutting down \n" + " Cause: " + e.getCause() + " \nERROR: " + e.getMessage());
System.out.println("Shutting down...");
client.closeNow();
}
System.out.println("Press any key to exit...");
Scanner scanner = new Scanner(System.in);
scanner.nextLine();
System.out.println("Shutting down...");
client.closeNow();
}
}
Membangun dan menjalankan aplikasi
Pada prompt perintah di folder my-app, jalankan perintah berikut:
mvn clean package -DskipTests
Setelah pembuatan selesai, jalankan perintah berikut untuk menjalankan aplikasi:
mvn exec:java -Dexec.mainClass="com.mycompany.app.App"
Anda dapat menggunakan portal untuk menampilkan file yang diunggah di kontainer penyimpanan yang Anda konfigurasikan:

Menerima pemberitahuan unggahan file
Di bagian ini, Anda membuat aplikasi konsol Java yang menerima pesan pemberitahuan unggah file dari IoT Hub.
Buat direktori untuk proyek Anda, dan mulai shell di direktori tersebut. Pada baris perintah, jalankan yang berikut ini
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=falsePada prompt perintah Anda, navigasi ke folder
my-appbaru.Menggunakan editor teks, ganti
pom.xmlfile di folder dengan yang berikutmy-appini. Menambahkan dependensi klien layanan memungkinkan Anda menggunakan paket iothub-java-service-client di aplikasi Anda untuk berkomunikasi dengan layanan hub IoT Anda:<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.mycompany.app</groupId> <artifactId>my-app</artifactId> <version>1.0-SNAPSHOT</version> <name>my-app</name> <!-- FIXME change it to the project's website --> <url>http://www.example.com</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>com.microsoft.azure.sdk.iot</groupId> <artifactId>iot-device-client</artifactId> <version>1.30.1</version> </dependency> <dependency> <groupId>com.microsoft.azure.sdk.iot</groupId> <artifactId>iot-service-client</artifactId> <version>1.7.23</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.29</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> </dependencies> <build> <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> <plugin> <artifactId>maven-shade-plugin</artifactId> <version>2.4</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </filter> </filters> <shadedArtifactAttached>true</shadedArtifactAttached> <shadedClassifierName>with-deps</shadedClassifierName> </configuration> </execution> </executions> </plugin> </plugins> </pluginManagement> </build> </project>Catatan
Anda dapat memeriksa versi terbaru iot-service-client menggunakan Penelusuran Maven.
Simpan dan tutup
pom.xmlfile.Dapatkan string koneksi layanan IoT Hub.
Untuk mendapatkan string koneksi Azure IoT Hub untuk kebijakan layanan, ikuti langkah-langkah berikut:
Di portal Microsoft Azure, pilih Grup sumber daya. Pilih grup sumber daya tempat hub Anda berada, lalu pilih hub Anda dari daftar sumber daya.
Di panel sisi kiri hub IoT Anda, pilih Kebijakan akses bersama.
Dari daftar kebijakan, pilih kebijakan layanan.
Di bagian Kunci akses bersama, pilih ikon salin untuk String koneksi utama dan simpan nilainya.
Untuk mengetahui informasi selengkapnya tentang kebijakan dan izin akses bersama IoT Hub, lihat Kontrol akses dan izin.
Menggunakan editor teks, buka
my-app\src\main\java\com\mycompany\app\App.javafile dan ganti kode dengan yang berikut ini.package com.mycompany.app; import com.microsoft.azure.sdk.iot.service.*; import java.io.IOException; import java.net.URISyntaxException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class App { private static final String connectionString = "{Your service connection string here}"; private static final IotHubServiceClientProtocol protocol = IotHubServiceClientProtocol.AMQPS; public static void main(String[] args) throws Exception { ServiceClient sc = ServiceClient.createFromConnectionString(connectionString, protocol); FileUploadNotificationReceiver receiver = sc.getFileUploadNotificationReceiver(); receiver.open(); FileUploadNotification fileUploadNotification = receiver.receive(2000); if (fileUploadNotification != null) { System.out.println("File Upload notification received"); System.out.println("Device Id : " + fileUploadNotification.getDeviceId()); System.out.println("Blob Uri: " + fileUploadNotification.getBlobUri()); System.out.println("Blob Name: " + fileUploadNotification.getBlobName()); System.out.println("Last Updated : " + fileUploadNotification.getLastUpdatedTimeDate()); System.out.println("Blob Size (Bytes): " + fileUploadNotification.getBlobSizeInBytes()); System.out.println("Enqueued Time: " + fileUploadNotification.getEnqueuedTimeUtcDate()); } else { System.out.println("No file upload notification"); } receiver.close(); } }Simpan dan tutup
my-app\src\main\java\com\mycompany\app\App.javafile.Gunakan perintah berikut untuk membuat aplikasi dan memeriksa kesalahan:
mvn clean package -DskipTests
Menjalankan aplikasi
Sekarang Anda siap untuk menjalankan aplikasi.
Pada prompt perintah di folder my-app, jalankan perintah berikut:
mvn exec:java -Dexec.mainClass="com.mycompany.app.App"
Tangkapan layar berikut menunjukkan output dari aplikasi read-file-upload-notification:

Langkah berikutnya
Dalam tutorial ini, Anda belajar cara menggunakan kemampuan pengunggahan file IoT Hub untuk menyederhanakan unggahan file dari perangkat. Anda dapat terus menjelajahi fitur dan skenario hub IoT dengan artikel berikut:
Untuk mengeksplorasi lebih lanjut kemampuan Azure IoT Hub, lihat: