Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Spring-projekt Spring Resources absztrakciót biztosít számos alacsony szintű erőforrás eléréséhez. A projekt olyan felületeket biztosít, mint Resource, ResourceLoader és ResourcePatternResolver. A Spring Cloud Azure implementálja ezeket a felületeket az Azure Storage-szolgáltatásokhoz, amelyek lehetővé teszik az Azure Storage Blob és a Fájlmegosztás használatát a Spring programozási modell használatával. A Spring Cloud Azure spring-cloud-azure-starter-storage-blob és spring-cloud-azure-starter-storage-file-share biztosít az Azure Storage Blob és az Azure Storage-fájlmegosztás automatikus konfigurálásához.
Az alábbi táblázat az Azure Storage-tal kapcsolatos kódtárakat sorolja fel:
| Induló | Szolgáltatás | Leírás |
|---|---|---|
| spring-cloud-azure-starter-storage-blob | Azure Storage-blob | Lehetővé teszi a strukturálatlan adatok tömeges tárolását és elérését blokkblobokban. |
| spring-cloud-azure-starter-storage-file-share | Azure Storage-fájlmegosztás | Teljes mértékben felügyelt felhőbeli fájlmegosztásokat kínál, amelyek bárhonnan elérhetők az iparági szabvány kiszolgálói üzenetblokk (SMB) protokollon keresztül. |
Függőség beállítása
<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>
A spring-cloud-azure-starter-storage-blob függőségre csak az Azure Storage Blob használatakor van szükség.
A spring-cloud-azure-starter-storage-file-share függőség csak az Azure Storage-fájlmegosztás használatakor szükséges.
Borravaló
Emellett spring-cloud-azure-starter-storage biztosítunk a Storage összes funkciójának támogatásához. Ha úgy dönt, hogy használja, spring.cloud.azure.storage.enable a konfigurálni kívánt tulajdonság, és az alapértelmezett érték true. Ezután a spring.cloud.azure.storage.<storage-service>.enable használatával letilthatja a szükségtelen szolgáltatásokat.
Konfiguráció
Jegyzet
Ha biztonsági taggal hitelesíti és engedélyezi a Microsoft Entra-azonosítót egy Azure-erőforrás eléréséhez, győződjön meg arról, hogy a biztonsági tag megfelelő engedélyt kapott az Azure-erőforrás eléréséhez. További információ: Hozzáférés engedélyezése a Microsoft Entra-azonosítóval.
Az alábbi táblázat a spring-cloud-azure-starter-storage-blobkonfigurálható tulajdonságait sorolja fel:
| Ingatlan | Alapértelmezett | Leírás |
|---|---|---|
| spring.cloud.azure.storage.blob.enabled | igaz | Egy érték, amely jelzi, hogy engedélyezve van-e egy Azure Blob Storage-szolgáltatás. |
| spring.cloud.azure.storage.blob.endpoint | Az Azure Blob Storage-hoz való csatlakozáshoz használt URI. | |
| spring.cloud.azure.storage.blob.account-key | Az Azure Blob Storage-hoz való csatlakozás titkos kulcsa. | |
| spring.cloud.azure.storage.blob.account-name | Az Azure Storage Blob-fiók neve. |
Az alábbi táblázat a spring-cloud-azure-starter-storage-file-sharekonfigurálható tulajdonságait sorolja fel:
| Ingatlan | Alapértelmezett | Leírás |
|---|---|---|
| spring.cloud.azure.storage.fileshare.enabled | igaz | Egy érték, amely jelzi, hogy az Azure File Storage szolgáltatás engedélyezve van-e. |
| spring.cloud.azure.storage.fileshare.endpoint | Az Azure File Storage-hoz való csatlakozáshoz használt URI. | |
| spring.cloud.azure.storage.fileshare.account-key | Az Azure File Storage-hoz való csatlakozás titkos kulcsa. | |
| spring.cloud.azure.storage.fileshare.account-name | Az Azure Storage-fájlmegosztási fiók neve. |
Alapszintű használat
Adja hozzá a következő tulajdonságokat a application.yml fájlhoz:
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}
Erőforrás lekérése
Erőforrás lekérése @Value
Az @Value("azure-blob://[your-container-name]/[your-blob-name]") széljegyzete segítségével automatikusan beszúrhat egy bloberőforrást az alábbi példában látható módon:
@Value("azure-blob://[your-container-name]/[your-blob-name]")
private Resource storageBlobResource;
A @Value("azure-file://[your-fileshare-name]/[your-file-name]") széljegyzetével automatikusan bevihet egy fájlerőforrást, ahogy az alábbi példában is látható:
@Value("azure-file://[your-fileshare-name]/[your-file-name]")
private Resource storageFileResource;
Erőforrás lekérése a ResourceLoaderrel
@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]");
Erőforrások lekérése keresési mintával
Az erőforrások kereséséhez használhatja a ResourcePatternResolver implementációs osztályát. A AzureStorageBlobProtocolResolver segítségével kereshet blob erőforrásokban, és AzureStorageFileProtocolResolver kereshet file erőforrásokban.
A mintakereséshez a
searchPatternazure-blob://vagyazure-file://kell kezdődnie. Aazure-blob://**/**például azt jelenti, hogy az összes tárolóban az összes blobot listázni kell,azure-blob://demo-container/**pedig azt jelenti, hogy ademo-containertárolóban lévő összes blobot listázni kell, beleértve az almappákat is.A helykereséshez a
searchLocationazure-blob://vagyazure-file://kell kezdődnie, a fennmaradó fájl elérési útjának pedig léteznie kell, ellenkező esetben kivétel jelenik meg.
@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");
Kezelés erőforrással
Adatok letöltése adott erőforrásból
Az azure storage-blobból vagy a fájlmegosztásból az getInputStream()Resource metódusával tölthet le egy erőforrást.
@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();
Adatok feltöltése adott erőforrásba
Feltölthet egy erőforrást az Azure Blobba vagy a fájltárolóba úgy, hogy a Spring ResourceWritableResource-ra adhatja, ahogy az alábbi példában látható:
@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());
}
Többrészes feltöltés
A 4 MiB-nél nagyobb fájlok párhuzamosan lesznek feltöltve az Azure Storage-ba.
Minták
Tekintse meg a storage-blob-sample és storage-file-sample adattárakat a GitHubon.