Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das Spring-Projekt bietet eine Spring Resources Abstraktion für den Zugriff auf eine Reihe von Ressourcen auf niedriger Ebene. Das Projekt stellt Schnittstellen wie Resource
, ResourceLoader
und ResourcePatternResolver
bereit. Spring Cloud Azure implementiert diese Schnittstellen für Azure Storage-Dienste, mit denen Sie mithilfe des Spring-Programmiermodells mit Azure Storage Blob und Dateifreigabe interagieren können. Spring Cloud Azure bietet spring-cloud-azure-starter-storage-blob
und spring-cloud-azure-starter-storage-file-share
zum automatischen Konfigurieren von Azure Storage Blob und Azure Storage File Share.
In der folgenden Tabelle sind azure Storage-bezogene Bibliotheken aufgeführt:
Anlasser | Dienst | Beschreibung |
---|---|---|
frühling-cloud-azure-starter-storage-blob | Azure Storage Blob | Ermöglicht die Speicherung und den Zugriff auf unstrukturierte Daten in Block-Blobs in großem Maßstab. |
frühling-cloud-azure-starter-speicher-dateifreigabe | Azure Storage-Dateifreigabe | Bietet vollständig verwaltete Cloud-Dateifreigaben, auf die Sie über das Branchenstandardprotokoll Server Message Block (SMB) von praktisch überall aus zugreifen können. |
Setup von Abhängigkeiten
<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>
Die spring-cloud-azure-starter-storage-blob
Abhängigkeit ist nur erforderlich, wenn Sie Azure Storage Blob verwenden.
Die spring-cloud-azure-starter-storage-file-share
Abhängigkeit ist nur erforderlich, wenn Sie azure Storage File Share verwenden.
Trinkgeld
Wir bieten auch spring-cloud-azure-starter-storage
, um alle Features von Storage zu unterstützen. Wenn Sie die Eigenschaft verwenden möchten, ist spring.cloud.azure.storage.enable
die zu konfigurierende Eigenschaft, und der Standardwert ist true
. Anschließend können Sie spring.cloud.azure.storage.<storage-service>.enable
verwenden, um nicht benötigte Dienste zu deaktivieren.
Konfiguration
Anmerkung
Wenn Sie einen Sicherheitsprinzipal zum Authentifizieren und Autorisieren mit Microsoft Entra-ID für den Zugriff auf eine Azure-Ressource verwenden, stellen Sie sicher, dass dem Sicherheitsprinzipal ausreichende Berechtigungen für den Zugriff auf die Azure-Ressource erteilt wurden. Weitere Informationen finden Sie unter Autorisieren des Zugriffs mit microsoft Entra ID.
In der folgenden Tabelle sind die konfigurierbaren Eigenschaften von spring-cloud-azure-starter-storage-blob
aufgeführt:
Eigentum | Vorgabe | Beschreibung |
---|---|---|
spring.cloud.azure.storage.blob.enabled | STIMMT | Ein Wert, der angibt, ob ein Azure Blob Storage-Dienst aktiviert ist. |
spring.cloud.azure.storage.blob.endpoint | Der URI zum Herstellen einer Verbindung mit Azure Blob Storage. | |
spring.cloud.azure.storage.blob.account-key | Der private Schlüssel zum Herstellen einer Verbindung mit Azure Blob Storage. | |
spring.cloud.azure.storage.blob.account-name | Der Name des Azure Storage Blob-Kontos. |
In der folgenden Tabelle sind die konfigurierbaren Eigenschaften von spring-cloud-azure-starter-storage-file-share
aufgeführt:
Eigentum | Vorgabe | Beschreibung |
---|---|---|
spring.cloud.azure.storage.fileshare.enabled | STIMMT | Ein Wert, der angibt, ob der Azure-Dateispeicherdienst aktiviert ist. |
spring.cloud.azure.storage.fileshare.endpoint | Der URI zum Herstellen einer Verbindung mit Azure File Storage. | |
spring.cloud.azure.storage.fileshare.account-key | Der private Schlüssel zum Herstellen einer Verbindung mit Azure File Storage. | |
spring.cloud.azure.storage.fileshare.account-name | Der Name des Azure Storage File Share-Kontos. |
Grundlegende Nutzung
Fügen Sie der datei application.yml die folgenden Eigenschaften hinzu:
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}
Abrufen einer Ressource
Abrufen einer Ressource mit @Value
Sie können die Anmerkung von @Value("azure-blob://[your-container-name]/[your-blob-name]")
verwenden, um eine BLOB-Ressource zu automatisch zu verkabeln, wie im folgenden Beispiel gezeigt:
@Value("azure-blob://[your-container-name]/[your-blob-name]")
private Resource storageBlobResource;
Sie können die Anmerkung von @Value("azure-file://[your-fileshare-name]/[your-file-name]")
verwenden, um eine Dateiressource automatisch zu verkabeln, wie im folgenden Beispiel gezeigt:
@Value("azure-file://[your-fileshare-name]/[your-file-name]")
private Resource storageFileResource;
Abrufen einer Ressource mit 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]");
Abrufen von Ressourcen nach Mustern
Sie können eine Implementierungsklasse von ResourcePatternResolver
verwenden, um Ressourcen zu durchsuchen. Verwenden Sie AzureStorageBlobProtocolResolver
, um blob
Ressourcen zu durchsuchen und AzureStorageFileProtocolResolver
, um file
Ressourcen zu durchsuchen.
Bei der Mustersuche sollte die
searchPattern
mitazure-blob://
oderazure-file://
beginnen. Beispielsweise bedeutetazure-blob://**/**
, alle Blobs in allen Containern auflisten zu können, undazure-blob://demo-container/**
bedeutet, alle Blobs im containerdemo-container
, einschließlich aller Unterordner, auflisten zu können.Bei der Speicherortsuche sollte der
searchLocation
mitazure-blob://
oderazure-file://
beginnen und der verbleibende Dateipfad vorhanden sein, andernfalls wird eine Ausnahme ausgelöst.
@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");
Umgang mit Ressource
Herunterladen von Daten aus einer bestimmten Ressource
Sie können eine Ressource aus Azure Storage Blob oder Dateifreigabe mit der getInputStream()
Methode von Resource
herunterladen.
@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();
Hochladen von Daten in bestimmte Ressourcen
Sie können eine Ressource in Azure Blob oder Dateispeicher hochladen, indem Sie das Spring Resource
in WritableResource
umwandeln, wie im folgenden Beispiel gezeigt:
@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());
}
Mehrteiliger Upload
Dateien, die größer als 4 MiB sind, werden parallel in Azure Storage hochgeladen.
Proben
Sehen Sie sich das storage-blob-sample- und Speicherdatei-Beispiel-Repositorys auf GitHub an.