Azure Storage Data Movement Common client library for .NET – Version 12.0.0-beta.3
Serverversion: 2021-02-12, 2020-12-06, 2020-10-02, 2020-08-04, 2020-06-12, 2020-04-08, 2020-02-10, 2019-12-12, 2019-07-07 und 2020-02-02-02
Azure Storage ist ein von Microsoft verwalteter Dienst, der hoch verfügbaren, sicheren, stabilen, skalierbaren und redundanten Cloudspeicher bereitstellt.
Die Azure Storage-Datenverschiebungsbibliothek ist für das Hochladen, Herunterladen und Kopieren von Kundendaten optimiert.
Derzeit unterstützt diese Version der Datenverschiebungsbibliothek nur Blobs.
Quellcode | API-Referenzdokumentation | REST-API-Dokumentation | Produktdokumentation
Erste Schritte
Installieren des Pakets
Installieren Sie die Azure Storage-Clientbibliothek für .NET, die Sie mit NuGet verwenden möchten, und die Azure.Storage.DataMovement
Clientbibliothek ist enthalten:
dotnet add package Azure.Storage.DataMovement --prerelease
Voraussetzungen
Sie benötigen ein Azure-Abonnement und ein Speicherkonto , um dieses Paket verwenden zu können.
Zum Erstellen eines neuen Speicherkontos können Sie das Azure-Portal, Azure PowerShell oder die Azure CLI verwenden. Beispiel für die Verwendung der Azure-Befehlszeilenschnittstelle:
az storage account create --name MyStorageAccount --resource-group MyResourceGroup --location westus --sku Standard_LRS
Authentifizieren des Clients
Um mit der Datenverschiebungsbibliothek zu interagieren, müssen Sie eine instance mit der TransferManager-Klasse erstellen.
Erstellen einer Instanz von TransferManager
TransferManager transferManager = new TransferManager(new TransferManagerOptions());
Erstellen einer Instanz von TransferManager mit Optionen
// Create BlobTransferManager with event handler in Options bag
TransferManagerOptions transferManagerOptions = new TransferManagerOptions();
TransferOptions options = new TransferOptions()
{
MaximumTransferChunkSize = 4 * Constants.MB,
CreateMode = StorageResourceCreateMode.Overwrite,
};
TransferManager transferManager = new TransferManager(transferManagerOptions);
Wichtige Begriffe
Die Allgemeine Azure Storage-Clientbibliothek enthält freigegebene Infrastruktur wie Anmeldeinformationen für die Authentifizierung und RequestFailedException.
Threadsicherheit
Wir garantieren, dass alle Client-instance Methoden threadsicher und unabhängig voneinander sind (Richtlinie). Dadurch wird sichergestellt, dass die Empfehlung, Clientinstanzen wiederzuverwenden, immer sicher ist, auch über Threads hinweg.
Zusätzliche Konzepte
Clientoptionen | Zugreifen auf die Antwort | Vorgänge | mit langer AusführungsdauerBehandeln von Fehlern | Diagnose | Spott | Clientlebensdauer
Beispiele
Sehen Sie sich die Beispiele für Blobs DataMovement an.
Anhalten einer Übertragung mithilfe des TransferManagers mithilfe des entsprechenden DataTransfer-Objekts
DataTransfer dataTransfer = await transferManager.StartTransferAsync(
sourceResource: sourceResource,
destinationResource: destinationResource);
// Pause from the Transfer Manager using the DataTransfer object
await transferManager.PauseTransferIfRunningAsync(dataTransfer);
Anhalten einer Übertragung mithilfe des TransferManagers mithilfe der jeweiligen Übertragungs-ID
DataTransfer dataTransfer = await transferManager.StartTransferAsync(
sourceResource: sourceResource,
destinationResource: destinationResource);
string transferId = dataTransfer.Id;
// Pause from the Transfer Manager using the Transfer Id
await transferManager.PauseTransferIfRunningAsync(transferId);
Anhalten einer Übertragung mithilfe des jeweiligen DataTransfer
DataTransfer dataTransfer = await transferManager.StartTransferAsync(
sourceResource: sourceResource,
destinationResource: destinationResource);
// Pause from the DataTransfer object
await dataTransfer.PauseIfRunningAsync();
Fortsetzen einer Übertragung
async Task<(StorageResource Source, StorageResource Destination)> MakeResourcesAsync(DataTransferProperties info)
{
StorageResource sourceResource = null, destinationResource = null;
if (BlobStorageResources.TryGetResourceProviders(
info,
out BlobStorageResourceProvider blobSrcProvider,
out BlobStorageResourceProvider blobDstProvider))
{
sourceResource ??= await blobSrcProvider.MakeResourceAsync(GetMyCredential(info.SourcePath));
destinationResource ??= await blobSrcProvider.MakeResourceAsync(GetMyCredential(info.DestinationPath));
}
if (LocalStorageResources.TryGetResourceProviders(
info,
out LocalStorageResourceProvider localSrcProvider,
out LocalStorageResourceProvider localDstProvider))
{
sourceResource ??= localSrcProvider.MakeResource();
destinationResource ??= localDstProvider.MakeResource();
}
return (sourceResource, destinationResource);
}
List<DataTransfer> resumedTransfers = new();
await foreach (DataTransferProperties transferProperties in transferManager.GetResumableTransfersAsync())
{
(StorageResource resumeSource, StorageResource resumeDestination) = await MakeResourcesAsync(transferProperties);
resumedTransfers.Add(await transferManager.ResumeTransferAsync(transferProperties.TransferId, resumeSource, resumeDestination));
}
Problembehandlung
Alle Azure Storage-Dienste lösen eine RequestFailedException mit hilfreichenErrorCode
S aus.
Nächste Schritte
Erste Schritte mit unseren Blob DataMovement-Beispielen.
Mitwirken
Ausführliche Informationen zum Erstellen, Testen und Mitwirken zu diesen Bibliotheken finden Sie unter Storage CONTRIBUTING.md .
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. Weitere Informationen finden Sie unter cla.microsoft.com.
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.