Partager via


Bibliothèque cliente commune de déplacement des données du stockage Azure pour .NET - version 12.0.0-beta.3

Version du serveur : 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 et 2020-02-02

Stockage Azure est un service géré par Microsoft qui fournit un stockage cloud hautement disponible, sécurisé, durable, évolutif et redondant.

La bibliothèque de déplacement des données du stockage Azure est optimisée pour le chargement, le téléchargement et la copie des données client.

Actuellement, cette version de la bibliothèque de déplacement de données prend uniquement en charge les objets blob.

| Code sourceDocumentation de référence sur les | APIDocumentation | sur l’API RESTDocumentation produit

Prise en main

Installer le package

Installez la bibliothèque cliente stockage Azure pour .NET que vous souhaitez utiliser avec NuGet et la Azure.Storage.DataMovement bibliothèque cliente sera incluse :

dotnet add package Azure.Storage.DataMovement --prerelease

Prérequis

Vous avez besoin d’un abonnement Azure et d’un compte de stockage pour utiliser ce package.

Pour créer un compte de stockage, vous pouvez utiliser le portail Azure, Azure PowerShell ou Azure CLI. Voici un exemple utilisant Azure CLI :

az storage account create --name MyStorageAccount --resource-group MyResourceGroup --location westus --sku Standard_LRS

Authentifier le client

Pour interagir avec la bibliothèque de déplacement de données, vous devez créer un instance avec la classe TransferManager.

Créer une instance de TransferManager

TransferManager transferManager = new TransferManager(new TransferManagerOptions());

Créer une instance de TransferManager avec options

// 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);

Concepts clés

La bibliothèque cliente commune stockage Azure contient une infrastructure partagée, comme les informations d’identification d’authentification et RequestFailedException.

Sécurité des threads

Nous garantissons que toutes les méthodes de instance client sont thread-safe et indépendantes les unes des autres (instructions). Cela garantit que la recommandation de réutilisation des instances clientes est toujours sécurisée, même entre les threads.

Concepts supplémentaires

Options | du clientAccès à la réponse | Opérations | de longue duréeGestion des défaillances | Diagnostics | Moqueur | Durée de vie du client

Exemples

Consultez les exemples pour Blobs DataMovement.

Suspendre un transfert à l’aide de TransferManager à l’aide de l’objet DataTransfer respectif

DataTransfer dataTransfer = await transferManager.StartTransferAsync(
    sourceResource: sourceResource,
    destinationResource: destinationResource);

// Pause from the Transfer Manager using the DataTransfer object
await transferManager.PauseTransferIfRunningAsync(dataTransfer);

Suspendre un transfert à l’aide de TransferManager à l’aide de l’ID de transfert respectif

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);

Suspendre un transfert à l’aide du DataTransfer respectif

DataTransfer dataTransfer = await transferManager.StartTransferAsync(
    sourceResource: sourceResource,
    destinationResource: destinationResource);

// Pause from the DataTransfer object
await dataTransfer.PauseIfRunningAsync();

Reprendre un transfert

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));
}

Résolution des problèmes

Tous les services de stockage Azure lèvent une exception RequestFailedException avec des s utilesErrorCode.

Étapes suivantes

Prise en main de nos exemples Blob DataMovement.

Contribution

Consultez la CONTRIBUTING.md stockage pour plus d’informations sur la création, le test et la contribution à ces bibliothèques.

Ce projet accepte les contributions et les suggestions. La plupart des contributions vous demandent d’accepter un contrat de licence de contribution (CLA) déclarant que vous avez le droit de nous accorder, et que vous nous accordez réellement, les droits d’utilisation de votre contribution. Pour plus d’informations, visitez cla.microsoft.com.

Ce projet a adopté le Code de conduite Open Source de Microsoft. Pour plus d’informations, consultez les Questions fréquentes (FAQ) sur le code de conduite ou envoyez vos questions ou vos commentaires à opencode@microsoft.com.

Impressions