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.

Aufrufe