Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Proyek Spring menyediakan abstraksi Sumber Daya Spring Resource, ResourceLoader, dan ResourcePatternResolver. Spring Cloud Azure mengimplementasikan antarmuka ini untuk layanan Azure Storage, yang memungkinkan Anda berinteraksi dengan Blob penyimpanan Azure dan Berbagi File menggunakan model pemrograman Spring. Spring Cloud Azure menyediakan spring-cloud-azure-starter-storage-blob dan spring-cloud-azure-starter-storage-file-share untuk mengonfigurasi Azure Storage Blob dan Azure Storage File Share secara otomatis.
Tabel berikut ini mencantumkan pustaka terkait Azure Storage:
| Starter | Dinas | Deskripsi |
|---|---|---|
| spring-cloud-azure-starter-storage-blob | Azure Storage Blob | Memungkinkan data yang tidak terstruktur disimpan dan diakses pada skala besar dalam blob blok. |
| Spring-cloud-azure-starter-storage-file-share | Berbagi File Azure Storage | Menawarkan berbagi file cloud yang dikelola sepenuhnya yang dapat Anda akses dari mana saja melalui protokol Blok Pesan Server (SMB) standar industri. |
Penyiapan dependensi
<dependencies>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-starter-storage-blob</artifactId>
</dependency>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-starter-storage-file-share</artifactId>
</dependency>
</dependencies>
Dependensi spring-cloud-azure-starter-storage-blob hanya diperlukan saat Anda menggunakan Azure Storage Blob.
Dependensi spring-cloud-azure-starter-storage-file-share hanya diperlukan saat Anda menggunakan Azure Storage File Share.
Ujung
Kami juga menyediakan spring-cloud-azure-starter-storage untuk mendukung semua fitur Storage. Jika Anda memilih untuk menggunakannya, spring.cloud.azure.storage.enable adalah properti untuk dikonfigurasi dan nilai defaultnya adalah true. Anda kemudian dapat menggunakan spring.cloud.azure.storage.<storage-service>.enable untuk menonaktifkan layanan yang tidak diperlukan.
Konfigurasi
Nota
Jika Anda menggunakan prinsip keamanan untuk mengautentikasi dan mengotorisasi dengan ID Microsoft Entra untuk mengakses sumber daya Azure, pastikan prinsip keamanan telah diberikan izin yang memadai untuk mengakses sumber daya Azure. Untuk informasi selengkapnya, lihat Mengotorisasi akses dengan ID Microsoft Entra.
Tabel berikut mencantumkan properti spring-cloud-azure-starter-storage-blobyang dapat dikonfigurasi :
| Harta benda | Bawaan | Deskripsi |
|---|---|---|
| spring.cloud.azure.storage.blob.enabled | benar | Nilai yang menunjukkan apakah layanan Azure Blob Storage diaktifkan. |
| spring.cloud.azure.storage.blob.endpoint | URI untuk menyambungkan ke Azure Blob Storage. | |
| spring.cloud.azure.storage.blob.account-key | Kunci privat untuk menyambungkan ke Azure Blob Storage. | |
| spring.cloud.azure.storage.blob.account-name | Nama akun Azure Storage Blob. |
Tabel berikut mencantumkan properti spring-cloud-azure-starter-storage-file-shareyang dapat dikonfigurasi :
| Harta benda | Bawaan | Deskripsi |
|---|---|---|
| musim semi.cloud.azure.storage.fileshare.enabled | benar | Nilai yang menunjukkan apakah layanan Azure File Storage diaktifkan. |
| musim semi.cloud.azure.storage.fileshare.endpoint | URI untuk menyambungkan ke Azure File Storage. | |
| musim semi.cloud.azure.storage.fileshare.account-key | Kunci privat untuk menyambungkan ke Azure File Storage. | |
| musim semi.cloud.azure.storage.fileshare.account-name | Nama akun Berbagi File Azure Storage. |
Penggunaan dasar
Tambahkan properti berikut ke file application.yml Anda:
spring:
cloud:
azure:
storage:
blob:
account-name: ${STORAGE_ACCOUNT_NAME}
account-key: ${STORAGE_ACCOUNT_KEY}
endpoint: ${STORAGE_BLOB_ENDPOINT}
fileshare:
account-name: ${STORAGE_ACCOUNT_NAME}
account-key: ${STORAGE_ACCOUNT_KEY}
endpoint: ${STORAGE_FILESHARE_ENDPOINT}
Mendapatkan sumber daya
Mendapatkan sumber daya dengan @Value
Anda dapat menggunakan anotasi @Value("azure-blob://[your-container-name]/[your-blob-name]") untuk mengotomatiskan sumber daya blob, seperti yang ditunjukkan dalam contoh berikut:
@Value("azure-blob://[your-container-name]/[your-blob-name]")
private Resource storageBlobResource;
Anda dapat menggunakan anotasi @Value("azure-file://[your-fileshare-name]/[your-file-name]") untuk mengotomatiskan sumber daya file, seperti yang ditunjukkan dalam contoh berikut:
@Value("azure-file://[your-fileshare-name]/[your-file-name]")
private Resource storageFileResource;
Mendapatkan sumber daya dengan ResourceLoader
@Autowired
private ResourceLoader resourceLoader;
...
// Get a BlobResource.
Resource storageBlobResource = resourceLoader.getResource("azure-blob://[your-container-name]/[your-blob-name]");
// Get a FileResource.
Resource storageFileResource = resourceLoader.getResource("azure-file://[your-fileshare-name]/[your-file-name]");
Mendapatkan sumber daya dengan mencari pola
Anda dapat menggunakan kelas implementasi ResourcePatternResolver untuk mencari sumber daya. Gunakan AzureStorageBlobProtocolResolver untuk mencari sumber daya blob dan AzureStorageFileProtocolResolver untuk mencari sumber daya file.
Untuk pencarian pola,
searchPatternharus dimulai denganazure-blob://atauazure-file://. Misalnya,azure-blob://**/**berarti mencantumkan semua blob di semua kontainer, danazure-blob://demo-container/**berarti mencantumkan semua blob dalam kontainerdemo-container, termasuk sub-folder apa pun.Untuk pencarian lokasi,
searchLocationharus dimulai denganazure-blob://atauazure-file://dan jalur file yang tersisa harus ada, jika tidak, pengecualian akan dilemparkan.
@Autowired
private AzureStorageBlobProtocolResolver azureStorageBlobProtocolResolver;
@Autowired
private AzureStorageFileProtocolResolver azureStorageFileProtocolResolver;
// Get all text blobs.
Resource[] blobTextResources = azureStorageBlobProtocolResolver.getResources("azure-blob://[container-pattern]/*.txt");
// Get all text files.
Resource[] fileTextResources = azureStorageFileProtocolResolver.getResources("azure-file://[fileshare-pattern]/*.txt");
Penanganan dengan sumber daya
Mengunduh data dari sumber daya tertentu
Anda dapat mengunduh sumber daya dari Azure Storage Blob atau File Share dengan metode getInputStream()Resource.
@Value("azure-blob://[your-container-name]/[your-blob-name]")
private Resource storageBlobResource;
@Value("azure-file://[your-fileshare-name]/[your-file-name]")
private Resource storageFileResource;
//...
// Download data as a stream from a blob resource.
InputStream inputblobStream = storageBlobResource.getInputStream();
// Download data as a stream from a file resource.
InputStream inputfileStream = storageFileResource.getInputStream();
Mengunggah data ke sumber daya tertentu
Anda dapat mengunggah ke sumber daya ke Azure Blob atau penyimpanan file dengan mentransmisikan Spring Resource ke WritableResource, seperti yang ditunjukkan dalam contoh berikut:
@Value("azure-blob://[your-container-name]/[your-blob-name]")
private Resource storageBlobResource;
@Value("azure-file://[your-fileshare-name]/[your-file-name]")
private Resource storageFileResource;
String data = "sampledata";
// Upload string data to a blob.
try (OutputStream blobos = ((WritableResource) this.storageBlobResource).getOutputStream()) {
blobos.write(data.getBytes());
}
// Upload string data to a file.
try (OutputStream fileos = ((WritableResource) this.storageFileResource).getOutputStream()) {
fileos.write(data.getBytes());
}
Unggahan multipihak
File yang lebih besar dari 4 MiB akan diunggah ke Azure Storage secara paralel.
Sampel
Lihat storage-blob-sample