Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Spring projesi, bir dizi alt düzey kaynağa erişmek için bir Spring Resources soyutlama sağlar. Proje, Resource, ResourceLoader ve ResourcePatternResolvergibi arabirimler sağlar. Spring Cloud Azure, Azure Depolama hizmetleri için bu arabirimleri uygulayarak Spring programlama modelini kullanarak Azure depolama Blobu ve Dosya Paylaşımı ile etkileşim kurmanızı sağlar. Spring Cloud Azure, Azure Depolama Blobu ve Azure Depolama Dosya Paylaşımı'nı otomatik olarak yapılandırmak için spring-cloud-azure-starter-storage-blob ve spring-cloud-azure-starter-storage-file-share sağlar.
Aşağıdaki tabloda Azure Depolama ile ilgili kitaplıklar listeleniyor:
| Meze | Hizmet | Açıklama |
|---|---|---|
| spring-cloud-azure-starter-storage-blob | Azure Depolama Blobu | Yapılandırılmamış verilerin blok bloblarında büyük ölçekte depolanmasına ve erişilmesine izin verir. |
| spring-cloud-azure-starter-storage-file-share | Azure Depolama Dosya Paylaşımı | Endüstri standardı Sunucu İleti Bloğu (SMB) protokolü aracılığıyla her yerden erişebileceğiniz tam olarak yönetilen bulut dosya paylaşımları sunar. |
Bağımlılık kurulumu
<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>
spring-cloud-azure-starter-storage-blob bağımlılığı yalnızca Azure Depolama Blobu kullanırken gereklidir.
spring-cloud-azure-starter-storage-file-share bağımlılığı yalnızca Azure Depolama Dosya Paylaşımı'nı kullanırken gereklidir.
Bahşiş
Ayrıca Depolama'nın tüm özelliklerini desteklemek için spring-cloud-azure-starter-storage sağlarız. Kullanmayı seçerseniz, spring.cloud.azure.storage.enable yapılandırılan özelliktir ve varsayılan değer true. Daha sonra gereksiz hizmetleri devre dışı bırakmak için spring.cloud.azure.storage.<storage-service>.enable kullanabilirsiniz.
Konfigürasyon
Not
Azure kaynağına erişim için Microsoft Entra ID ile kimlik doğrulaması yapmak ve yetkilendirmek için bir güvenlik sorumlusu kullanıyorsanız güvenlik sorumlusuna Azure kaynağına erişmek için yeterli izin verildiğinden emin olun. Daha fazla bilgi için bkz. Microsoft Entra ID ile erişimi yetkilendirme.
Aşağıdaki tabloda spring-cloud-azure-starter-storage-blobyapılandırılabilir özellikleri listelenir:
| Mülk | Temerrüt | Açıklama |
|---|---|---|
| spring.cloud.azure.storage.blob.enabled |
doğru | Azure Blob Depolama hizmetinin etkinleştirilip etkinleştirilmediğini gösteren değer. |
| spring.cloud.azure.storage.blob.endpoint |
Azure Blob Depolama'ya bağlanmak için URI. | |
| spring.cloud.azure.storage.blob.account-key | Azure Blob Depolama'ya bağlanmak için özel anahtar. | |
| spring.cloud.azure.storage.blob.account-name |
Azure Depolama Blobu hesap adı. |
Aşağıdaki tabloda spring-cloud-azure-starter-storage-file-shareyapılandırılabilir özellikleri listelenir:
| Mülk | Temerrüt | Açıklama |
|---|---|---|
| spring.cloud.azure.storage.fileshare.enabled |
doğru | Azure Dosya Depolama hizmetinin etkinleştirilip etkinleştirilmediğini gösteren değer. |
| spring.cloud.azure.storage.fileshare.endpoint | Azure Dosya Depolama'ya bağlanmak için URI. | |
| spring.cloud.azure.storage.fileshare.account-key |
Azure Dosya Depolama'ya bağlanmak için özel anahtar. | |
| spring.cloud.azure.storage.fileshare.account-name |
Azure Depolama Dosya Paylaşımı hesap adı. |
Temel kullanım
application.yml dosyanıza aşağıdaki özellikleri ekleyin:
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}
Kaynak alma
@Value ile kaynak alma
Aşağıdaki örnekte gösterildiği gibi blob kaynağını otomatik olarak bağlamak için @Value("azure-blob://[your-container-name]/[your-blob-name]") ek açıklamasını kullanabilirsiniz:
@Value("azure-blob://[your-container-name]/[your-blob-name]")
private Resource storageBlobResource;
Aşağıdaki örnekte gösterildiği gibi, bir dosya kaynağını otomatik olarak bağlamak için @Value("azure-file://[your-fileshare-name]/[your-file-name]") ek açıklamasını kullanabilirsiniz:
@Value("azure-file://[your-fileshare-name]/[your-file-name]")
private Resource storageFileResource;
ResourceLoader ile kaynak alma
@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]");
Deseni arayarak kaynakları alma
Kaynakları aramak için ResourcePatternResolver uygulama sınıfını kullanabilirsiniz.
AzureStorageBlobProtocolResolver kaynakları aramak için blob ve AzureStorageFileProtocolResolver kaynakları aramak için file kullanın.
Desen araması için
searchPatternazure-blob://veyaazure-file://ile başlamalıdır. Örneğin,azure-blob://**/**tüm kapsayıcılardaki tüm blobları listelemek veazure-blob://demo-container/**demo-containerkapsayıcıdaki tüm blobları listelemek anlamına gelir ve herhangi bir alt klasör de dahil olmak üzere.Konum araması için,
searchLocationazure-blob://veyaazure-file://ile başlamalıdır ve kalan dosya yolu bulunmalıdır, aksi takdirde bir özel durum oluşturulur.
@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");
Kaynakla işleme
Belirli bir kaynaktan veri indirme
Azure Depolama Blobu'ndan veya Dosya Paylaşımı'ndan getInputStream()Resource yöntemiyle bir kaynak indirebilirsiniz.
@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();
Verileri belirli bir kaynağa yükleme
Aşağıdaki örnekte gösterildiği gibi Spring ResourceWritableResourceolarak yayınlayarak bir kaynağa Azure Blob'a veya dosya depolamaya yükleyebilirsiniz:
@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());
}
Çok parçalı karşıya yükleme
4 MiB'den büyük dosyalar paralel olarak Azure Depolama'ya yüklenir.
Örnekleri
GitHub'da storage-blob-sample ve storage-file-sample depolarına bakın.