Biblioteca de clientes comum de movimentação de dados do Armazenamento do Azure para .NET – versão 12.0.0-beta.3
Versão do 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 e 2020-02-02
O Armazenamento do Azure é um serviço gerenciado pela Microsoft que fornece um armazenamento na nuvem altamente disponível, seguro, durável, escalonável e redundante.
A biblioteca de Movimentação de Dados do Armazenamento do Azure é otimizada para carregar, baixar e copiar dados do cliente.
Atualmente, essa versão da biblioteca de Movimentação de Dados dá suporte apenas a Blobs.
Código-fonte | Documentação | de referência da APIDocumentação | da API RESTDocumentação do produto
Introdução
Instalar o pacote
Instale a biblioteca de clientes do Armazenamento do Azure para .NET que você gostaria de usar com o NuGet e a Azure.Storage.DataMovement
biblioteca de clientes será incluída:
dotnet add package Azure.Storage.DataMovement --prerelease
Pré-requisitos
Você precisa de uma assinatura do Azure e uma Conta de Armazenamento para usar esse pacote.
Para criar uma conta de armazenamento, você pode usar o Portal do Azure, Azure PowerShell ou a CLI do Azure. Aqui, está um exemplo usando a CLI do Azure:
az storage account create --name MyStorageAccount --resource-group MyResourceGroup --location westus --sku Standard_LRS
Autenticar o cliente
Para interagir com a biblioteca de Movimentação de Dados, você precisa criar uma instância com a classe TransferManager.
Criar instância do TransferManager
TransferManager transferManager = new TransferManager(new TransferManagerOptions());
Criar instância do TransferManager com opções
// 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);
Principais conceitos
A biblioteca de clientes comum do Armazenamento do Azure contém infraestrutura compartilhada, como credenciais de autenticação e RequestFailedException.
Acesso thread-safe
Garantimos que todos os métodos de instância do cliente sejam thread-safe e independentes uns dos outros (diretriz). Isso garante que a recomendação de reutilize instâncias de cliente seja sempre segura, mesmo entre threads.
Conceitos adicionais
Opções do | clienteAcessando a resposta | Operações de execução longa | Tratamento de falhas | Diagnostics | Zombando | Tempo de vida do cliente
Exemplos
Consulte os exemplos de Blobs DataMovement.
Pausar uma transferência usando o TransferManager usando o respectivo objeto DataTransfer
DataTransfer dataTransfer = await transferManager.StartTransferAsync(
sourceResource: sourceResource,
destinationResource: destinationResource);
// Pause from the Transfer Manager using the DataTransfer object
await transferManager.PauseTransferIfRunningAsync(dataTransfer);
Pausar uma transferência usando o TransferManager usando a respectiva ID de transferência
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 uma transferência usando o respectivo DataTransfer
DataTransfer dataTransfer = await transferManager.StartTransferAsync(
sourceResource: sourceResource,
destinationResource: destinationResource);
// Pause from the DataTransfer object
await dataTransfer.PauseIfRunningAsync();
Retomar uma transferência
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));
}
Solução de problemas
Todos os serviços de Armazenamento do Azure lançarão uma RequestFailedException com s úteisErrorCode
.
Próximas etapas
Introdução aos nossos exemplos de Blob DataMovement.
Participante
Consulte a CONTRIBUTING.md de armazenamento para obter detalhes sobre como criar, testar e contribuir para essas bibliotecas.
Este projeto aceita contribuições e sugestões. A maioria das contribuições exige que você concorde com um CLA (Contrato de Licença do Colaborador) declarando que você tem o direito de nos conceder, e de fato concede, os direitos de usar sua contribuição. Para obter detalhes, visite cla.microsoft.com.
Este projeto adotou o Código de Conduta de Software Livre da Microsoft. Para obter mais informações, confira as Perguntas frequentes sobre o Código de Conduta ou contate opencode@microsoft.com para enviar outras perguntas ou comentários.