Mulai menggunakan Azure Blob Storage dan Java
Artikel ini memperlihatkan kepada Anda cara menyambungkan ke Azure Blob Storage dengan menggunakan pustaka klien Azure Blob Storage untuk Java. Setelah terhubung, gunakan panduan pengembang untuk mempelajari bagaimana kode Anda dapat beroperasi pada kontainer, blob, dan fitur layanan Blob Storage.
Jika Anda ingin memulai dengan contoh lengkap, lihat Mulai Cepat: Pustaka klien Azure Blob Storage untuk Java.
Paket referensi | API (Maven) | Sampel | kode | sumber pustaka Berikan umpan balik
Prasyarat
- Langganan Azure - buat akun secara gratis
- Akun penyimpanan Azure - buat akun penyimpanan
- Java Development Kit (JDK) versi 8 atau yang lebih baru
- Apache Maven digunakan untuk manajemen proyek dalam contoh ini
Menyiapkan proyek Anda
Catatan
Artikel ini menggunakan alat build Maven untuk membangun dan menjalankan kode sampel. Alat build lainnya, seperti Gradle, juga bekerja dengan Azure SDK untuk Java.
Gunakan Maven untuk membuat aplikasi konsol baru, atau buka proyek yang sudah ada. Ikuti langkah-langkah ini untuk menginstal paket dan menambahkan arahan yang diperlukan import
.
Memasang paket
Buka file pom.xml
di editor teks Anda. Instal paket dengan menyertakan file BOM, atau termasuk dependensi langsung.
Sertakan file BOM
Tambahkan azure-sdk-bom untuk mengambil dependensi pada versi terbaru pustaka. Dalam cuplikan berikut, ganti {bom_version_to_target}
tempat penampung dengan nomor versi. Menggunakan azure-sdk-bom membuat Anda tidak perlu menentukan versi setiap dependensi individu. Untuk mempelajari selengkapnya tentang BOM, lihat AZURE SDK BOM README.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-sdk-bom</artifactId>
<version>{bom_version_to_target}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Tambahkan elemen dependensi berikut ke grup dependensi. Dependensi azure-identity diperlukan untuk koneksi tanpa kata sandi ke layanan Azure.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-blob</artifactId>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-common</artifactId>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
</dependency>
Menyertakan dependensi langsung
Untuk mengambil dependensi pada versi pustaka tertentu, tambahkan dependensi langsung ke proyek Anda:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-blob</artifactId>
<version>{package_version_to_target}</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-common</artifactId>
<version>{package_version_to_target}</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>{package_version_to_target}</version>
</dependency>
Sertakan direktif impor
Kemudian buka file kode Anda dan tambahkan arahan yang diperlukan import
. Dalam contoh ini, kami menambahkan arahan berikut dalam file App.java :
import com.azure.core.credential.*;
import com.azure.identity.*;
import com.azure.storage.blob.*;
import com.azure.storage.blob.models.*;
import com.azure.storage.blob.specialized.*;
import com.azure.storage.common.*;
Informasi pustaka klien blob:
- com.azure.storage.blob: Berisi kelas utama (objek klien) yang dapat Anda gunakan untuk beroperasi pada layanan, kontainer, dan blob.
- com.azure.storage.blob.models: Berisi kelas utilitas, struktur, dan jenis enumerasi.
- com.azure.storage.blob.specialized: Berisi kelas yang dapat Anda gunakan untuk melakukan operasi khusus untuk jenis blob (Misalnya: menambahkan blob).
Mengotorisasi akses dan menyambungkan ke Blob Storage
Untuk menyambungkan aplikasi ke Blob Storage, buat instans kelas BlobServiceClient . Anda juga dapat menggunakan kelas BlobServiceAsyncClient untuk pemrograman asinkron. Objek ini adalah titik awal Anda untuk berinteraksi dengan sumber daya data di tingkat akun penyimpanan. Anda dapat menggunakannya untuk beroperasi pada akun penyimpanan dan kontainernya. Anda juga dapat menggunakan klien layanan untuk membuat klien kontainer atau klien blob, tergantung pada sumber daya yang perlu Anda kerjakan.
Untuk mempelajari selengkapnya tentang membuat dan mengelola objek klien, lihat Membuat dan mengelola objek klien yang berinteraksi dengan sumber daya data.
Anda dapat mengotorisasi BlobServiceClient
objek dengan menggunakan token otorisasi Microsoft Entra, kunci akses akun, atau tanda tangan akses bersama (SAS). Untuk keamanan yang optimal, Microsoft merekomendasikan penggunaan ID Microsoft Entra dengan identitas terkelola untuk mengotorisasi permintaan terhadap data blob. Untuk informasi selengkapnya, lihat Mengotorisasi akses ke blob menggunakan ID Microsoft Entra.
Untuk mengotorisasi dengan ID Microsoft Entra, Anda harus menggunakan prinsip keamanan. Jenis prinsip keamanan mana yang Anda butuhkan tergantung pada tempat aplikasi Anda berjalan. Gunakan tabel berikut sebagai panduan:
Tempat aplikasi berjalan | Prinsip keamanan | Panduan |
---|---|---|
Komputer lokal (pengembangan dan pengujian) | Perwakilan layanan | Untuk mempelajari cara mendaftarkan aplikasi, menyiapkan grup Microsoft Entra, menetapkan peran, dan mengonfigurasi variabel lingkungan, lihat Mengotorisasi akses menggunakan perwakilan layanan pengembang. |
Komputer lokal (pengembangan dan pengujian) | Identitas pengguna | Untuk mempelajari cara menyiapkan grup Microsoft Entra, menetapkan peran, dan masuk ke Azure, lihat Mengotorisasi akses menggunakan kredensial pengembang. |
Dihosting di Azure | Identitas terkelola | Untuk mempelajari cara mengaktifkan identitas terkelola dan menetapkan peran, lihat Mengotorisasi akses dari aplikasi yang dihosting Azure menggunakan identitas terkelola. |
Dihosting di luar Azure (misalnya, aplikasi lokal) | Perwakilan layanan | Untuk mempelajari cara mendaftarkan aplikasi, menetapkan peran, dan mengonfigurasi variabel lingkungan, lihat Mengotorisasi akses dari aplikasi lokal menggunakan perwakilan layanan aplikasi |
Mengotorisasi akses menggunakan DefaultAzureCredential
Cara mudah dan aman untuk mengotorisasi akses dan terhubung ke Blob Storage adalah dengan mendapatkan token OAuth dengan membuat instans DefaultAzureCredential . Anda kemudian dapat menggunakan kredensial tersebut untuk membuat objek BlobServiceClient .
Pastikan Anda memiliki dependensi yang benar dalam pom.xml dan arahan impor yang diperlukan, seperti yang dijelaskan dalam Menyiapkan proyek Anda.
Contoh berikut menggunakan BlobServiceClientBuilder untuk membangun BlobServiceClient
objek menggunakan DefaultAzureCredential
, dan menunjukkan cara membuat klien kontainer dan blob, jika diperlukan:
// Azure SDK client builders accept the credential as a parameter
// TODO: Replace <storage-account-name> with your actual storage account name
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder()
.endpoint("https://<storage-account-name>.blob.core.windows.net/")
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
// If needed, you can create a BlobContainerClient object from the BlobServiceClient
BlobContainerClient containerClient = blobServiceClient
.getBlobContainerClient("<container-name>");
// If needed, you can create a BlobClient object from the BlobContainerClient
BlobClient blobClient = containerClient
.getBlobClient("<blob-name>");
Mengonfigurasi TTL JVM untuk pencarian nama DNS
Java Virtual Machine (JVM) menyimpan respons dari pencarian nama DNS yang berhasil untuk jangka waktu tertentu, yang dikenal sebagai time-to-live (TTL). Nilai TTL default untuk banyak JVM adalah -1
, yang berarti bahwa JVM menyimpan respons tanpa batas waktu, atau sampai JVM dimulai ulang.
Karena sumber daya Azure menggunakan entri nama DNS yang dapat berubah, kami sarankan Anda mengatur nilai TTL JVM menjadi 10 detik. Konfigurasi ini memastikan bahwa alamat IP yang diperbarui untuk sumber daya dikembalikan dengan kueri DNS berikutnya.
Untuk mengubah nilai TTL secara global untuk semua aplikasi menggunakan JVM, atur networkaddress.cache.ttl
properti dalam java.security
file.
networkaddress.cache.ttl=10
Untuk Java 8, java.security
file terletak di $JAVA_HOME/jre/lib/security
direktori. Untuk Java 11 dan yang lebih tinggi, file terletak di $JAVA_HOME/conf/security
direktori.
Membuat aplikasi Anda
Saat Anda membuat aplikasi untuk bekerja dengan sumber daya data di Azure Blob Storage, kode Anda terutama berinteraksi dengan tiga jenis sumber daya: akun penyimpanan, kontainer, dan blob. Untuk mempelajari selengkapnya tentang jenis sumber daya ini, bagaimana mereka berhubungan satu dengan yang lain, dan bagaimana aplikasi berinteraksi dengan sumber daya, lihat Memahami bagaimana aplikasi berinteraksi dengan sumber daya data Blob Storage.
Panduan berikut menunjukkan kepada Anda cara mengakses data dan melakukan tindakan tertentu menggunakan pustaka klien Azure Storage untuk Java:
Panduan | Deskripsi |
---|---|
Mengonfigurasi kebijakan coba lagi | Terapkan kebijakan coba lagi untuk operasi klien. |
Menyalin blob | Salin blob dari satu lokasi ke lokasi lain. |
Membuat kontainer | Buat kontainer blob. |
Buat SAS delegasi pengguna | Buat SAS delegasi pengguna untuk kontainer atau blob. |
Membuat dan mengelola sewa blob | Buat dan kelola kunci pada blob. |
Membuat dan mengelola sewa kontainer | Membuat dan mengelola kunci pada kontainer. |
Menghapus dan memulihkan blob | Hapus blob, dan jika penghapusan sementara diaktifkan, pulihkan blob yang dihapus. |
Menghapus dan memulihkan kontainer | Hapus kontainer, dan jika penghapusan sementara diaktifkan, pulihkan kontainer yang dihapus. |
Unduh blob | Unduh blob dengan menggunakan string, aliran, dan jalur file. |
Menemukan blob menggunakan tag | Atur dan ambil tag serta gunakan tag untuk menemukan blob. |
Masukkan blob | Cantumkan blob dengan cara yang berbeda. |
Mendaftar kontainer | Cantumkan kontainer di akun dan berbagai opsi yang tersedia untuk menyesuaikan pencantuman. |
Mengelola properti dan metadata (blob) | Dapatkan dan atur properti dan metadata untuk blob. |
Mengelola properti dan metadata (kontainer) | Dapatkan dan atur properti dan metadata untuk kontainer. |
Penyetelan performa untuk transfer data | Optimalkan performa untuk operasi transfer data. |
Mengatur atau mengubah tingkat akses blob | Atur atau ubah tingkat akses untuk blob blok. |
Unggah blob | Pelajari cara mengunggah blob dengan menggunakan string, aliran, jalur file, dan metode lainnya. |