Biblioteca cliente común del movimiento de datos de Azure Storage para .NET, versión 12.0.0-beta.3
Versión del servidor: 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 y 2020-02-02
Azure Storage es un servicio administrado por Microsoft que proporciona almacenamiento en la nube altamente disponible, seguro, duradero, escalable y redundante.
La biblioteca de movimiento de datos de Azure Storage está optimizada para cargar, descargar y copiar datos de clientes.
Actualmente, esta versión de la biblioteca de movimiento de datos solo admite blobs.
Código | fuenteDocumentación | de referencia de APIDocumentación | de la API RESTDocumentación del producto
Introducción
Instalar el paquete
Instale la biblioteca cliente de Azure Storage para .NET que desea usar con NuGet y se incluirá la Azure.Storage.DataMovement
biblioteca cliente:
dotnet add package Azure.Storage.DataMovement --prerelease
Requisitos previos
Necesita una suscripción de Azure y una cuenta de almacenamiento para usar este paquete.
Para crear una cuenta de almacenamiento, puede usar Azure Portal, Azure PowerShell o la CLI de Azure. A continuación se facilita un ejemplo mediante el uso de la CLI de Azure:
az storage account create --name MyStorageAccount --resource-group MyResourceGroup --location westus --sku Standard_LRS
Autenticar el cliente
Para interactuar con la biblioteca de movimiento de datos, debe crear una instancia con la clase TransferManager.
Creación de una instancia de TransferManager
TransferManager transferManager = new TransferManager(new TransferManagerOptions());
Creación de una instancia de TransferManager con opciones
// 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);
Conceptos clave
La biblioteca cliente común de Azure Storage contiene una infraestructura compartida, como credenciales de autenticación y RequestFailedException.
Seguridad para subprocesos
Garantizamos que todos los métodos de instancia de cliente son seguros para subprocesos e independientes entre sí (instrucciones). Esto garantiza que la recomendación de reutilizar instancias de cliente siempre es segura, incluso entre subprocesos.
Conceptos adicionales
Opciones | de clienteAcceso a la respuesta | Operaciones | de larga duraciónControl de errores | Diagnóstico | Burla | Duración del cliente
Ejemplos
Consulte los ejemplos de DataMovement de blobs.
Pausar una transferencia mediante transferManager mediante el objeto DataTransfer correspondiente
DataTransfer dataTransfer = await transferManager.StartTransferAsync(
sourceResource: sourceResource,
destinationResource: destinationResource);
// Pause from the Transfer Manager using the DataTransfer object
await transferManager.PauseTransferIfRunningAsync(dataTransfer);
Pausar una transferencia mediante TransferManager mediante el identificador de transferencia correspondiente
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);
Pausar una transferencia mediante la transferencia de datos correspondiente
DataTransfer dataTransfer = await transferManager.StartTransferAsync(
sourceResource: sourceResource,
destinationResource: destinationResource);
// Pause from the DataTransfer object
await dataTransfer.PauseIfRunningAsync();
Reanudar una transferencia
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));
}
Solución de problemas
Todos los servicios de Azure Storage producirán una excepción RequestFailedException con s útilesErrorCode
.
Pasos siguientes
Introducción a los ejemplos de Blob DataMovement.
Contribuciones
Consulte storage CONTRIBUTING.md para obtener más información sobre la compilación, las pruebas y la contribución a estas bibliotecas.
Este proyecto agradece las contribuciones y sugerencias. La mayoría de las contribuciones requieren que acepte un Contrato de licencia para el colaborador (CLA) que declara que tiene el derecho a concedernos y nos concede los derechos para usar su contribución. Para obtener más información, visite cla.microsoft.com.
Este proyecto ha adoptado el Código de conducta de Microsoft Open Source. Para más información, consulte las preguntas más frecuentes del código de conducta o póngase en contacto con opencode@microsoft.com si tiene cualquier otra pregunta o comentario.