Azure File Share-Clientbibliothek für Java– Version 12.20.1
Das SMB-Protokoll (Server Message Block) ist das bevorzugte Dateifreigabeprotokoll, das heute lokal verwendet wird. Mit dem Microsoft Azure File Share-Dienst können Kunden die Verfügbarkeit und Skalierbarkeit von Azure-IaaS-SMB (Cloud Infrastructure-as-a-Service) nutzen, ohne SMB-Clientanwendungen neu schreiben zu müssen.
Auf Dateien, die in Azure File Share-Dienstfreigaben gespeichert sind, kann über das SMB-Protokoll und auch über REST-APIs zugegriffen werden. Der Dateifreigabedienst bietet die folgenden vier Ressourcen: das Speicherkonto, Freigaben, Verzeichnisse und Dateien. Freigaben bieten die Möglichkeit, Dateisätze zu organisieren und können außerdem als SMB-Dateifreigabe bereitgestellt werden, die in der Cloud gehostet wird.
Quellcode | API-Referenzdokumentation | REST-API-Dokumentation | Produktdokumentation | Proben
Erste Schritte
Voraussetzungen
- Java Development Kit (JDK) mit Version 8 oder höher
- Azure-Abonnement
- Speicherkonto erstellen
Einschließen des Pakets
BOM-Datei einfügen
Fügen Sie azure-sdk-bom in Ihr Projekt ein, um von der GA-Version der Bibliothek abhängig zu sein. Ersetzen Sie im folgenden Codeausschnitt den Platzhalter {bom_version_to_target} durch die Versionsnummer. Weitere Informationen zur BOM finden Sie in der INFODATEI FÜR AZURE SDK-STÜCKLISTEN.
<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>
und fügen Sie dann die direkte Abhängigkeit ohne Versions-Tag in den Abschnitt „Abhängigkeit“ ein.
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-file-share</artifactId>
</dependency>
</dependencies>
Direkte Abhängigkeiten einfügen
Wenn Sie eine Abhängigkeit von einer bestimmten Version der Bibliothek annehmen möchten, die nicht in der BoM vorhanden ist, fügen Sie die direkte Abhängigkeit wie folgt zu Ihrem Projekt hinzu.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-file-share</artifactId>
<version>12.20.1</version>
</dependency>
Erstellen eines Speicherkontos
Zum Erstellen eines Speicherkontos können Sie das Azure-Portal oder die Azure CLI verwenden.
az storage account create \
--resource-group <resource-group-name> \
--name <storage-account-name> \
--location <location>
Authentifizieren des Clients
Um mit dem Speicherdienst (Dateifreigabedienst, Freigabe, Verzeichnis, MessageId, Datei) zu interagieren, müssen Sie eine instance der Service Client-Klasse erstellen. Um dies zu ermöglichen, benötigen Sie die Konto-SAS-Zeichenfolge (Shared Access Signature) des Speicherkontos. Weitere Informationen finden Sie unter SAS-Token.
Anmeldeinformationen abrufen
SAS-Token
Verwenden Sie den folgenden Azure CLI-Codeausschnitt , um das SAS-Token aus dem Speicherkonto abzurufen.
az storage file generate-sas --name {account name} --expiry {date/time to expire SAS token} --permission {permission to grant} --connection-string {connection string of the storage account}
CONNECTION_STRING=<connection-string> az storage file generate-sas --name javasdksas --expiry 2019-06-05 --permission rpau --connection-string $CONNECTION_STRING
Alternativ können Sie das Konto-SAS-Token aus dem Azure-Portal abrufen.
- Wechseln Sie zum Speicherkonto.
- Klicken Sie auf "Shared Access Signature".
- Klicken Sie auf "SAS und Verbindungszeichenfolge generieren".
Anmeldeinformationen für gemeinsam genutzte Schlüssel
- Es gibt zwei Möglichkeiten zum Erstellen von Anmeldeinformationen mit gemeinsam genutztem Schlüssel: Die erste ist die Verwendung des Speicherkontonamens und des Kontoschlüssels. Die zweite ist die Verwendung des Speichers Verbindungszeichenfolge.
- Verwenden Sie den Kontonamen und den Kontoschlüssel.
- Der Kontoname ist der Name Ihres Speicherkontos.
- Wechseln Sie zum Speicherkonto.
- Wählen Sie die Registerkarte "Zugriffsschlüssel" aus.
- Kopieren Sie den Wert "Key" für Schlüssel 1 oder Schlüssel 2.
- Verwenden der Verbindungszeichenfolge
- Wechseln Sie zum Speicherkonto.
- Wählen Sie die Registerkarte "Zugriffsschlüssel" aus.
- Kopieren Sie den Wert "Verbindungszeichenfolge" für Schlüssel 1 oder Schlüssel 2.
- Verwenden Sie den Kontonamen und den Kontoschlüssel.
- Es gibt zwei Möglichkeiten zum Erstellen von Anmeldeinformationen mit gemeinsam genutztem Schlüssel: Die erste ist die Verwendung des Speicherkontonamens und des Kontoschlüssels. Die zweite ist die Verwendung des Speichers Verbindungszeichenfolge.
Wichtige Begriffe
URL-Format
Dateifreigaben können im folgenden URL-Format adressierbar sein:
https://<storage account>.file.core.windows.net/<share>
Mit der folgenden URL kann eine der Warteschlangen im Diagramm adressiert werden:
https://myaccount.file.core.windows.net/images-to-download
Syntax von Ressourcen-URIs
Für das Speicherkonto schließt der Basis-URI für Warteschlangenvorgänge nur den Namen des Kontos ein:
https://myaccount.file.core.windows.net
Für datei enthält der Basis-URI den Namen des Kontos und den Namen des Verzeichnisses/der Datei:
https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile
Behandeln von Ausnahmen
Verwendet den shareServiceClient
unten aus shareServiceClient generierten Abschnitt.
try {
shareServiceClient.createShare("myShare");
} catch (ShareStorageException e) {
logger.error("Failed to create a share with error code: " + e.getErrorCode());
}
Ressourcennamen
Der URI zum Verweisen auf eine Freigabe, ein Verzeichniss oder eine Datei muss eindeutig sein. Innerhalb eines bestimmten Speicherkontos muss jede Freigabe einen eindeutigen Namen aufweisen. Jede Datei innerhalb einer bestimmten Freigabe oder eines Verzeichnisses muss auch innerhalb dieser Freigabe oder dieses Verzeichnisses einen eindeutigen Namen haben.
Wenn Sie versuchen, eine Freigabe, ein Verzeichnis oder eine Datei mit einem Namen zu erstellen, der gegen die Benennungsregeln verstößt, schlägt die Anforderung mit dem Statuscode 400 (Ungültige Anforderung) fehl.
Freigabenamen
Die Regeln für Dateifreigabedienstnamen sind restriktiver als im SMB-Protokoll für SMB-Freigabenamen vorgeschrieben, sodass die Blob- und Dateidienste ähnliche Namenskonventionen für Container und Freigaben verwenden können. Die Benennungseinschränkungen für Freigaben lauten wie folgt:
- Ein Freigabename muss ein gültiger DNS-Name sein.
- Freigabenamen müssen mit einem Buchstaben oder einer Ziffer beginnen und dürfen nur Buchstaben, Ziffern und den Bindestrich (-) enthalten.
- Jedem Bindestrich (-) muss unmittelbar ein Buchstabe oder eine Ziffer voran- und nachgestellt werden. Aufeinander folgende Bindestriche sind in Freigabenamen nicht zulässig.
- Alle Buchstaben in einem Freigabenamen müssen Kleinbuchstaben sein.
- Freigabenamen müssen eine Länge zwischen 3 und 63 Zeichen aufweisen.
Verzeichnis- und Dateinamen
Die Benennungsregeln für den Azure-Dateifreigabedienst für Verzeichnis- und Dateinamen sind wie folgt:
- Bei Freigabeverzeichnissen und Dateinamen wird die Groß-/Kleinschreibung beibehalten und die Groß-/Kleinschreibung wird nicht beachtet.
- Freigabeverzeichnis- und Dateikomponentennamen dürfen nicht mehr als 255 Zeichen lang sein.
- Freigabeverzeichnisnamen dürfen nicht mit dem Schrägstrich (/) enden. Falls eingegeben, erfolgt eine automatische Entfernung.
- Freigabedateinamen dürfen nicht mit dem Schrägstrich (/) enden.
- Reservierte URL-Zeichen müssen korrekt mit Escapezeichen versehen sein.
- Die folgenden Zeichen sind nicht zulässig:
" \ / : | < > * ?
- Ungültige URL-Pfadzeichen sind unzulässig. Codepunkte wie \uE000, die in NTFS-Dateinamen gültig sind, sind keine gültigen Unicodezeichen. Darüber hinaus sind einige ASCII- und Unicode-Zeichen, z. B. Steuerzeichen (0x00 bis 0x1F, \u0081 usw.), ebenfalls nicht zulässig. Regeln für Unicode-Zeichenfolgen in HTTP/1.1 finden Sie unter RFC 2616, Abschnitt 2.2: Grundlegende Regeln und RFC 3987.
- Die folgenden Dateinamen sind nicht zulässig: LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, PRN, AUX, NUL, CON, CLOCK$, Punktzeichen (.) und zwei Punktzeichen (.).
Metadatennamen
Metadaten für eine Freigabe- oder Dateiressource werden als Name-Wert-Paare gespeichert, die der Ressource zugeordnet sind. Verzeichnisse haben keine Metadaten. Metadatennamen müssen den Benennungsregeln für C#-Bezeichner entsprechen.
Beachten Sie, dass für Metadatennamen die Groß-/Kleinschreibung beibehalten wird, die bei der Erstellung verwendet wurde. Beim Festlegen oder Lesen wird die Groß-/Kleinschreibung aber nicht berücksichtigt. Wenn zwei oder mehr Metadatenheader mit demselben Namen für eine Ressource gesendet werden, gibt der Azure-Dateidienst den Statuscode 400 zurück (Ungültige Anforderung).
Freigabedienste
Die REST-API des Dateifreigabediensts stellt Vorgänge für Konten und die Verwaltung von Dateidiensteigenschaften bereit. Sie ermöglicht das Auflisten und Löschen von Freigaben, das Abrufen und Festlegen von Dateidiensteigenschaften.
Sobald Sie über das SASToken verfügen, können Sie die shareServiceClient
mit ${accountName}
erstellen. ${sasToken}
String shareServiceURL = String.format("https://%s.file.core.windows.net", ACCOUNT_NAME);
ShareServiceClient shareServiceClient = new ShareServiceClientBuilder().endpoint(shareServiceURL)
.sasToken(SAS_TOKEN).buildClient();
Teilen
Die Freigabenressource enthält Metadaten und Eigenschaften für die betreffende Freigabe. Es ermöglicht die Vorgänge zum Erstellen, Erstellen von Momentaufnahme, Löschen von Freigaben, Abrufen von Freigabeeigenschaften, Festlegen von Metadaten, Abrufen und Festlegen von ACL (Zugriffsrichtlinie). Das Abrufen und Festlegen von ACL (Zugriffsrichtlinie) kann nur von ShareClient mit ConnectionString verwendet werden.
Freigeben mit SASToken
Sobald Sie über das SASToken verfügen, können Sie den Freigabeclient mit ${accountName}
, ${shareName}
erstellen. ${sasToken}
String shareURL = String.format("https://%s.file.core.windows.net", ACCOUNT_NAME);
ShareClient shareClient = new ShareClientBuilder().endpoint(shareURL)
.sasToken(SAS_TOKEN).shareName(shareName).buildClient();
Freigeben mit ConnectionString
Sobald Sie über connectionString verfügen, können Sie den Freigabeclient mit ${accountName}
, ${shareName}
erstellen. ${connectionString}
String shareURL = String.format("https://%s.file.core.windows.net", ACCOUNT_NAME);
ShareClient shareClient = new ShareClientBuilder().endpoint(shareURL)
.connectionString(CONNECTION_STRING).shareName(shareName).buildClient();
Freigeben mit TokenCredential
Sobald Sie über tokenCredential verfügen, können Sie den Freigabeclient mit ${accountName}
, ${shareName}
und ShareTokenIntent
erstellen.
ShareTokenIntent.BACKUP
gibt Anforderungen an, die für Sicherungs-/Administratortypvorgänge vorgesehen sind, was bedeutet, dass alle Datei-/Verzeichnis-ACLs umgangen und vollständige Berechtigungen erteilt werden. Der Benutzer muss über die erforderliche RBAC-Berechtigung verfügen, um verwenden ShareTokenIntent.BACKUP
zu können.
String shareURL = String.format("https://%s.file.core.windows.net", ACCOUNT_NAME);
ShareClient serviceClient = new ShareClientBuilder()
.endpoint(shareURL)
.credential(tokenCredential)
.shareTokenIntent(ShareTokenIntent.BACKUP)
.shareName(shareName)
.buildClient();
Verzeichnis
Die Verzeichnisressource enthält die Eigenschaften für dieses Verzeichnis. Es ermöglicht die Vorgänge zum Erstellen, Auflisten, Löschen von Verzeichnissen, Unterverzeichnissen oder Dateien, Abrufen von Eigenschaften, Festlegen von Metadaten, Auflisten und Erzwingen des Schließens der Handles.
Sobald Sie über sasToken verfügen, können Sie den Dateidienstclient mit ${accountName}
, ${shareName}
, ${directoryPath}
erstellen. ${sasToken}
String directoryURL = String.format("https://%s.file.core.windows.net", ACCOUNT_NAME);
ShareDirectoryClient directoryClient = new ShareFileClientBuilder().endpoint(directoryURL)
.sasToken(SAS_TOKEN).shareName(shareName).resourcePath(directoryPath).buildDirectoryClient();
Datei
Die Dateiressource enthält die Eigenschaften für diese Datei. Es ermöglicht die Vorgänge zum Erstellen, Hochladen, Kopieren, Herunterladen, Löschen von Dateien oder Bereich der Dateien, Abrufen von Eigenschaften, Festlegen von Metadaten, Auflisten und Erzwingen des Schließens der Handles.
Sobald Sie über das SASToken verfügen, können Sie den Dateidienstclient mit ${accountName}
, ${shareName}
, ${directoryPath}
, ${fileName}
, , ${sasToken}
String fileURL = String.format("https://%s.file.core.windows.net", ACCOUNT_NAME);
ShareFileClient fileClient = new ShareFileClientBuilder().connectionString(CONNECTION_STRING)
.endpoint(fileURL).shareName(shareName).resourcePath(directoryPath + "/" + fileName).buildFileClient();
Beispiele
Die folgenden Abschnitte enthalten mehrere Codeausschnitte, die einige der gängigsten Configuration Service-Aufgaben behandeln, einschließlich:
- Erstellen einer Freigabe
- Erstellen eines Momentaufnahme auf Freigabe
- Erstellen eines Verzeichnisses
- Erstellen eines Unterverzeichnisses
- Erstellen einer Datei
- Auflisten aller Freigaben
- Auflisten aller Unterverzeichnisse und Dateien
- Auflisten aller Bereiche in der Datei
- Löschen einer Freigabe
- Löschen eines Verzeichnisses
- Löschen eines Unterverzeichnisses
- Löschen einer Datei
- Kopieren einer Datei
- Abbrechen des Kopierens einer Datei
- Hochladen von Daten in die Speicherdatei
- Hochladen von Daten, die größer als 4 MB sind, in die Speicherdatei
- Hochladen der Datei in die Speicherdatei
- Herunterladen von Daten aus dem Dateibereich
- Herunterladen der Datei aus der Speicherdatei
- Abrufen von Eigenschaften eines Freigabediensts
- Festlegen von Eigenschaften eines Freigabediensts
- Festlegen von Freigabemetadaten
- Abrufen einer Freigabezugriffsrichtlinie
- Festlegen einer Freigabezugriffsrichtlinie
- Abrufen von Handles für Verzeichnis und Datei
- Schließen von Handles für Handle-ID erzwingen
- Festlegen des Kontingents für Freigabe
- Festlegen der Datei httpHeaders
Erstellen einer Freigabe
Erstellen Sie eine Freigabe im Speicherkonto. Löst StorageException aus, wenn die Freigabe nicht erstellt werden kann.
Verwenden eines ShareServiceClient in KeyConcept, ${shareServiceClient}
.
String shareName = "testshare";
shareServiceClient.createShare(shareName);
Erstellen eines Momentaufnahme auf Freigabe
Verwenden eines ShareServiceClient in KeyConcept, ${shareServiceClient}
.
String shareName = "testshare";
ShareClient shareClient = shareServiceClient.getShareClient(shareName);
shareClient.createSnapshot();
Erstellen eines Verzeichnisses
Der oben initialisierte shareClient wird ${shareClient}
verwendet.
String dirName = "testdir";
shareClient.createDirectory(dirName);
Erstellen eines Unterverzeichnisses
Verwenden des directoryClient in KeyConcept, ${directoryClient}
.
String subDirName = "testsubdir";
directoryClient.createSubdirectory(subDirName);
Erstellen einer Datei
Verwenden des directoryClient in KeyConcept, ${directoryClient}
.
String fileName = "testfile";
long maxSize = 1024;
directoryClient.createFile(fileName, maxSize);
Auflisten aller Freigaben
Verwenden von shareServiceClient in KeyConcept, ${shareServiceClient}
shareServiceClient.listShares();
Auflisten aller Unterverzeichnisse und Dateien
Verwenden des directoryClient in KeyConcept, ${directoryClient}
directoryClient.listFilesAndDirectories();
Auflisten aller Bereiche in der Datei
Verwenden des fileClient in KeyConcept, ${fileClient}
fileClient.listRanges();
Löschen einer Freigabe
Verwenden des shareClient in KeyConcept, ${shareClient}
shareClient.delete();
Löschen eines Verzeichnisses
Nehmen Sie den shareClient in KeyConcept, ${shareClient}
.
String dirName = "testdir";
shareClient.deleteDirectory(dirName);
Löschen eines Unterverzeichnisses
Verwenden des directoryClient in KeyConcept, ${directoryClient}
.
String subDirName = "testsubdir";
directoryClient.deleteSubdirectory(subDirName);
Löschen von Dateien
Verwenden des directoryClient in KeyConcept, ${directoryClient}
.
String fileName = "testfile";
directoryClient.deleteFile(fileName);
Kopieren einer Datei
Verwenden des fileClients in KeyConcept ${fileClient}
mit der Zeichenfolge der Quell-URL.
String sourceURL = "https://myaccount.file.core.windows.net/myshare/myfile";
Duration pollInterval = Duration.ofSeconds(2);
SyncPoller<ShareFileCopyInfo, Void> poller = fileClient.beginCopy(sourceURL, (Map<String, String>) null, pollInterval);
Abbrechen des Kopierens einer Datei
Verwenden Sie den fileClient in KeyConcept mit ${fileClient}
der antwort auf die Kopierinformationen, die oben ${copyId}=[copyInfoResponse](#copy-a-file)
zurückgegeben wurde.
fileClient.abortCopy("copyId");
Hochladen von Daten in den Speicher
Verwenden sie den fileClient in KeyConcept ${fileClient}
mit Daten von "default".
String uploadText = "default";
InputStream data = new ByteArrayInputStream(uploadText.getBytes(StandardCharsets.UTF_8));
fileClient.upload(data, uploadText.length());
Hochladen von Daten, die größer als 4 MB sind, in den Speicher
Verwenden sie den fileClient in KeyConcept ${fileClient}
mit Daten von "default".
byte[] data = "Hello, data sample!".getBytes(StandardCharsets.UTF_8);
long chunkSize = 4 * 1024 * 1024L;
if (data.length > chunkSize) {
for (int offset = 0; offset < data.length; offset += chunkSize) {
try {
// the last chunk size is smaller than the others
chunkSize = Math.min(data.length - offset, chunkSize);
// select the chunk in the byte array
byte[] subArray = Arrays.copyOfRange(data, offset, (int) (offset + chunkSize));
// upload the chunk
fileClient.uploadWithResponse(new ByteArrayInputStream(subArray), chunkSize, (long) offset, null, Context.NONE);
} catch (RuntimeException e) {
logger.error("Failed to upload the file", e);
if (Boolean.TRUE.equals(fileClient.exists())) {
fileClient.delete();
}
throw e;
}
}
} else {
fileClient.upload(new ByteArrayInputStream(data), data.length);
}
Hochladen der Datei in den Speicher
Nehmen Sie den fileClient in KeyConcept, ${fileClient}
.
String filePath = "${myLocalFilePath}";
fileClient.uploadFromFile(filePath);
Herunterladen von Daten aus dem Dateibereich
Verwenden sie den fileClient in KeyConcept mit ${fileClient}
dem Bereich von 1024 bis 2048.
ShareFileRange fileRange = new ShareFileRange(0L, 2048L);
OutputStream stream = new ByteArrayOutputStream();
fileClient.downloadWithResponse(stream, fileRange, false, null, Context.NONE);
Herunterladen der Datei aus dem Speicher
Verwenden Sie den fileClient in KeyConcept, ${fileClient}
und laden Sie es in die Datei von filePath herunter.
String filePath = "${myLocalFilePath}";
fileClient.downloadToFile(filePath);
Abrufen von Eigenschaften eines Freigabediensts
Verwenden eines ShareServiceClient in KeyConcept, ${shareServiceClient}
.
shareServiceClient.getProperties();
Festlegen von Eigenschaften eines Freigabediensts
Verwenden eines ShareServiceClient in KeyConcept, ${shareServiceClient}
.
ShareServiceProperties properties = shareServiceClient.getProperties();
properties.getMinuteMetrics().setEnabled(true).setIncludeApis(true);
properties.getHourMetrics().setEnabled(true).setIncludeApis(true);
shareServiceClient.setProperties(properties);
Festlegen von Freigabemetadaten
Nehmen Sie den shareClient in KeyConcept, ${shareClient}
.
Map<String, String> metadata = Collections.singletonMap("directory", "metadata");
shareClient.setMetadata(metadata);
Abrufen einer Freigabezugriffsrichtlinie
Nehmen Sie den shareClient in KeyConcept, ${shareClient}
.
shareClient.getAccessPolicy();
Festlegen einer Freigabezugriffsrichtlinie
Nehmen Sie den shareClient in KeyConcept, ${shareClient}
.
ShareAccessPolicy accessPolicy = new ShareAccessPolicy().setPermissions("r")
.setStartsOn(OffsetDateTime.now(ZoneOffset.UTC))
.setExpiresOn(OffsetDateTime.now(ZoneOffset.UTC).plusDays(10));
ShareSignedIdentifier permission = new ShareSignedIdentifier().setId("mypolicy").setAccessPolicy(accessPolicy);
shareClient.setAccessPolicy(Collections.singletonList(permission));
Abrufen von Handles für eine Verzeichnisdatei
Verwenden des directoryClient in KeyConcept, ${directoryClient}
PagedIterable<HandleItem> handleItems = directoryClient.listHandles(null, true, Duration.ofSeconds(30), Context.NONE);
Schließen von Handles für Handle-ID erzwingen
Verwenden des directoryClient in KeyConcept ${directoryClient}
und der oben zurückgegebenen Handle-ID ${handleId}=[handleItems](#get-handles-on-directory-file)
PagedIterable<HandleItem> handleItems = directoryClient.listHandles(null, true, Duration.ofSeconds(30), Context.NONE);
String handleId = handleItems.iterator().next().getHandleId();
directoryClient.forceCloseHandleWithResponse(handleId, Duration.ofSeconds(30), Context.NONE);
Festlegen des Kontingents für freigabe
Nehmen Sie den shareClient in KeyConcept, ${shareClient}
.
int quotaOnGB = 1;
shareClient.setPropertiesWithResponse(new ShareSetPropertiesOptions().setQuotaInGb(quotaOnGB), null, Context.NONE);
Festlegen von Datei-HTTP-Headern
Nehmen Sie den fileClient in KeyConcept, ${fileClient}
.
ShareFileHttpHeaders httpHeaders = new ShareFileHttpHeaders().setContentType("text/plain");
fileClient.setProperties(1024, httpHeaders, null, null);
Problembehandlung
Allgemein
Wenn Sie mit der Datei mithilfe dieser Java-Clientbibliothek interagieren, entsprechen vom Dienst zurückgegebene Fehler denselben HTTP-status Codes, die für REST-API-Anforderungen zurückgegeben werden. Wenn Sie beispielsweise versuchen, eine Freigabe abzurufen, die in Ihrem Speicherkonto nicht vorhanden ist, wird ein 404
Fehler zurückgegeben, der angibt Not Found
.
HTTP-Standardclient
Alle Clientbibliotheken verwenden standardmäßig den Netty-HTTP-Client. Durch Hinzufügen der obigen Abhängigkeit wird die Clientbibliothek automatisch für die Verwendung des Netty-HTTP-Clients konfiguriert. Das Konfigurieren oder Ändern des HTTP-Clients wird detailliert im Wiki zu HTTP-Clients beschrieben.
SSL-Standardbibliothek
Alle Clientbibliotheken verwenden standardmäßig die Tomcat-native Boring-SSL-Bibliothek, um die Leistung auf nativer Ebene für SSL-Vorgänge zu ermöglichen. Die Boring-SSL-Bibliothek ist eine Uber-JAR-Datei mit nativen Bibliotheken für Linux/macOS/Windows und bietet im Vergleich zur SSL-Standardimplementierung im JDK eine bessere Leistung. Weitere Informationen, einschließlich zur Reduzierung der Abhängigkeitsgröße, finden Sie im Abschnitt Leistungsoptimierung des Wikis.
Nächste Schritte
Mitwirken
Beiträge und Vorschläge für dieses Projekt sind willkommen. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. Ausführliche Informationen finden Sie unter https://cla.microsoft.com.
Wenn Sie einen Pull Request (PR) übermitteln, überprüft ein CLA-Bot automatisch, ob Sie eine Lizenzvereinbarung bereitstellen und den PR entsprechend ergänzen müssen (z.B. mit einer Bezeichnung oder einem Kommentar). Führen Sie einfach die Anweisungen des Bots aus. Sie müssen dies nur einmal für alle Repositorys ausführen, die unsere CLA verwenden.
Für dieses Projekt gelten die Microsoft-Verhaltensregeln für Open Source (Microsoft Open Source Code of Conduct). Weitere Informationen finden Sie in den häufig gestellten Fragen zum Verhaltenskodex. Sie können sich auch an opencode@microsoft.com wenden, wenn Sie weitere Fragen oder Anmerkungen haben.
Ausführliche Informationen zum Mitwirken an diesem Repository finden Sie im Leitfaden zum Mitwirken.
- Verzweigen sie
- Erstellen Ihrer Featurebranch (
git checkout -b my-new-feature
) - Committen Ihrer Änderungen (
git commit -am 'Add some feature'
) - Pushen in den Branch (
git push origin my-new-feature
) - Erstellen eines neuen Pull Requests