Gegevens overdragen met de bibliotheek voor gegevensverplaatsing
Notitie
Dit artikel bevat richtlijnen voor het werken met versie 2.0.XX van de Azure Storage-bibliotheek voor gegevensverplaatsing. Versie 2.0.XX bevindt zich momenteel in de onderhoudsmodus en de bibliotheek ontvangt alleen oplossingen voor gegevensintegriteit en beveiligingsproblemen. Er worden geen nieuwe functionaliteit of functies toegevoegd en nieuwe versies van de opslagservice worden niet ondersteund door de bibliotheek.
Bètaversies van een moderne bibliotheek voor gegevensverplaatsing zijn momenteel in ontwikkeling. Zie de Algemene clientbibliotheek voor Azure Storage-gegevensverplaatsing voor .NET op GitHub voor meer informatie.
De Azure Storage-bibliotheek voor gegevensverplaatsing is een platformoverschrijdende open source-bibliotheek die is ontworpen voor het uploaden, downloaden en kopiëren van blobs en bestanden. De bibliotheek voor gegevensverplaatsing biedt handige methoden die niet beschikbaar zijn in de Azure Storage-clientbibliotheek voor .NET. Met deze methoden kunt u het aantal parallelle bewerkingen instellen, de voortgang van de overdracht bijhouden, eenvoudig een geannuleerde overdracht hervatten en nog veel meer.
Deze bibliotheek maakt ook gebruik van .NET Core, wat betekent dat u deze kunt gebruiken bij het bouwen van .NET-apps voor Windows, Linux en macOS. Raadpleeg de .NET Core-documentatie voor meer informatie over .NET Core. Deze bibliotheek werkt ook voor traditionele .NET Framework-apps voor Windows.
In dit document ziet u hoe u een .NET Core-consoletoepassing maakt die wordt uitgevoerd in Windows, Linux en macOS en de volgende scenario's uitvoert:
- Bestanden en mappen uploaden naar Blob Storage.
- Definieer het aantal parallelle bewerkingen bij het overdragen van gegevens.
- Voortgang van gegevensoverdracht bijhouden.
- Geannuleerde gegevensoverdracht hervatten.
- Kopieer het bestand van de URL naar Blob Storage.
- Kopiëren van Blob Storage naar Blob Storage.
Vereisten
Instellingen
- Ga naar de .NET Core-installatiehandleiding om de .NET Core SDK te installeren. Wanneer u uw omgeving selecteert, kiest u de opdrachtregeloptie.
- Maak vanaf de opdrachtregel een map voor uw project. Navigeer naar deze map en typ
dotnet new console -o <sample-project-name>
vervolgens om een C#-consoleproject te maken. - Open deze map in Visual Studio Code. Deze stap kan snel worden uitgevoerd via de opdrachtregel door in Windows te typen
code .
. - Installeer de C#-extensie vanuit Visual Studio Code Marketplace. Start Visual Studio Code opnieuw.
- Op dit moment ziet u twee prompts. Een is voor het toevoegen van 'vereiste assets om te bouwen en fouten op te sporen'. Selecteer Ja. Een andere prompt is het herstellen van onopgeloste afhankelijkheden. Selecteer 'herstellen'.
- Wijzig
launch.json
onder.vscode
om externe terminal als console te gebruiken. Deze instelling moet worden gelezen als"console": "externalTerminal"
- Met Visual Studio Code kunt u fouten opsporen in .NET Core-toepassingen. Druk
F5
om uw toepassing uit te voeren en te controleren of uw installatie werkt. Als het goed is, ziet u dat 'Hallo wereld!' in de console wordt afgedrukt.
De bibliotheek voor gegevensverplaatsing toevoegen aan uw project
- Voeg de nieuwste versie van de bibliotheek voor gegevensverplaatsing toe aan de
dependencies
sectie van uw<project-name>.csproj
bestand. Op het moment van schrijven is deze versie"Microsoft.Azure.Storage.DataMovement": "0.6.2"
- Er moet een prompt worden weergegeven om uw project te herstellen. Selecteer de knop Herstellen. U kunt uw project ook herstellen vanaf de opdrachtregel door de opdracht
dotnet restore
in de hoofdmap van de projectmap te typen.
Wijzigen <project-name>.csproj
:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Azure.Storage.DataMovement" Version="0.6.2" />
</ItemGroup>
</Project>
Het toepassingsframework instellen
Het eerste wat we doen is het codeframework voor onze toepassing instellen. Deze code vraagt ons om een opslagaccountnaam en accountsleutel en gebruikt deze referenties om een CloudStorageAccount
object te maken. Dit object wordt gebruikt voor interactie met ons opslagaccount in alle overdrachtsscenario's. De code vraagt ons ook om het type overdrachtsbewerking te kiezen dat we willen uitvoeren.
Wijzigen Program.cs
:
using System;
using System.Threading;
using System.Threading.Tasks;
using System.Diagnostics;
using Microsoft.Azure.Storage;
using Microsoft.Azure.Storage.Blob;
using Microsoft.Azure.Storage.DataMovement;
namespace DMLibSample
{
public class Program
{
public static void Main()
{
Console.WriteLine("Enter Storage account name:");
string accountName = Console.ReadLine();
Console.WriteLine("\nEnter Storage account key:");
string accountKey = Console.ReadLine();
string storageConnectionString = "DefaultEndpointsProtocol=https;AccountName=" + accountName + ";AccountKey=" + accountKey;
CloudStorageAccount account = CloudStorageAccount.Parse(storageConnectionString);
ExecuteChoice(account);
}
public static void ExecuteChoice(CloudStorageAccount account)
{
Console.WriteLine("\nWhat type of transfer would you like to execute?\n1. Local file --> Azure Blob\n2. Local directory --> Azure Blob directory\n3. URL (e.g. Amazon S3 file) --> Azure Blob\n4. Azure Blob --> Azure Blob");
int choice = int.Parse(Console.ReadLine());
if(choice == 1)
{
TransferLocalFileToAzureBlob(account).Wait();
}
else if(choice == 2)
{
TransferLocalDirectoryToAzureBlobDirectory(account).Wait();
}
else if(choice == 3)
{
TransferUrlToAzureBlob(account).Wait();
}
else if(choice == 4)
{
TransferAzureBlobToAzureBlob(account).Wait();
}
}
public static async Task TransferLocalFileToAzureBlob(CloudStorageAccount account)
{
}
public static async Task TransferLocalDirectoryToAzureBlobDirectory(CloudStorageAccount account)
{
}
public static async Task TransferUrlToAzureBlob(CloudStorageAccount account)
{
}
public static async Task TransferAzureBlobToAzureBlob(CloudStorageAccount account)
{
}
}
}
Belangrijk
In dit codevoorbeeld wordt een verbindingsreeks gebruikt om toegang tot uw opslagaccount te autoriseren. Deze configuratie is bijvoorbeeld bedoeld. Verbindingsreeksen en toegangssleutels voor accounts moeten met voorzichtigheid worden gebruikt in de toepassingscode. Als uw accounttoegangssleutel verloren gaat of per ongeluk op een onveilige locatie is geplaatst, kan uw service kwetsbaar worden. Iedereen met de toegangssleutel kan aanvragen voor het opslagaccount autoriseren en heeft effectief toegang tot alle gegevens.
Een lokaal bestand uploaden naar een blob
Voeg de methoden GetSourcePath
toe en GetBlob
aan Program.cs
:
public static string GetSourcePath()
{
Console.WriteLine("\nProvide path for source:");
string sourcePath = Console.ReadLine();
return sourcePath;
}
public static CloudBlockBlob GetBlob(CloudStorageAccount account)
{
CloudBlobClient blobClient = account.CreateCloudBlobClient();
Console.WriteLine("\nProvide name of Blob container:");
string containerName = Console.ReadLine();
CloudBlobContainer container = blobClient.GetContainerReference(containerName);
container.CreateIfNotExistsAsync().Wait();
Console.WriteLine("\nProvide name of new Blob:");
string blobName = Console.ReadLine();
CloudBlockBlob blob = container.GetBlockBlobReference(blobName);
return blob;
}
Wijzig de TransferLocalFileToAzureBlob
methode:
public static async Task TransferLocalFileToAzureBlob(CloudStorageAccount account)
{
string localFilePath = GetSourcePath();
CloudBlockBlob blob = GetBlob(account);
Console.WriteLine("\nTransfer started...");
await TransferManager.UploadAsync(localFilePath, blob);
Console.WriteLine("\nTransfer operation complete.");
ExecuteChoice(account);
}
Deze code vraagt ons om het pad naar een lokaal bestand, de naam van een nieuwe of bestaande container en de naam van een nieuwe blob. De TransferManager.UploadAsync
methode voert het uploaden uit met behulp van deze informatie.
Druk F5
om uw toepassing uit te voeren. U kunt controleren of het uploaden is uitgevoerd door uw opslagaccount te bekijken met Microsoft Azure Storage Explorer.
Het aantal parallelle bewerkingen instellen
De bibliotheek voor gegevensverplaatsing biedt de mogelijkheid om het aantal parallelle bewerkingen in te stellen om de doorvoer van gegevensoverdracht te verhogen. De bibliotheek voor gegevensverplaatsing stelt standaard het aantal parallelle bewerkingen in op 8 * het aantal kernen op uw computer.
Houd er rekening mee dat veel parallelle bewerkingen in een omgeving met lage bandbreedte de netwerkverbinding kunnen overbelasten en dat bewerkingen niet volledig kunnen worden voltooid. U moet experimenteren met deze instelling om te bepalen wat het beste werkt op basis van uw beschikbare netwerkbandbreedte.
In dit voorbeeld voegen we code toe waarmee we het aantal parallelle bewerkingen kunnen instellen. We voegen ook code toe die tijden toevoegt hoe lang het duurt voordat de overdracht is voltooid.
Voeg een SetNumberOfParallelOperations
methode toe aan Program.cs
:
public static void SetNumberOfParallelOperations()
{
Console.WriteLine("\nHow many parallel operations would you like to use?");
string parallelOperations = Console.ReadLine();
TransferManager.Configurations.ParallelOperations = int.Parse(parallelOperations);
}
Wijzig de ExecuteChoice
te gebruiken SetNumberOfParallelOperations
methode:
public static void ExecuteChoice(CloudStorageAccount account)
{
Console.WriteLine("\nWhat type of transfer would you like to execute?\n1. Local file --> Azure Blob\n2. Local directory --> Azure Blob directory\n3. URL (e.g. Amazon S3 file) --> Azure Blob\n4. Azure Blob --> Azure Blob");
int choice = int.Parse(Console.ReadLine());
SetNumberOfParallelOperations();
if(choice == 1)
{
TransferLocalFileToAzureBlob(account).Wait();
}
else if(choice == 2)
{
TransferLocalDirectoryToAzureBlobDirectory(account).Wait();
}
else if(choice == 3)
{
TransferUrlToAzureBlob(account).Wait();
}
else if(choice == 4)
{
TransferAzureBlobToAzureBlob(account).Wait();
}
}
Wijzig de TransferLocalFileToAzureBlob
methode om een timer te gebruiken:
public static async Task TransferLocalFileToAzureBlob(CloudStorageAccount account)
{
string localFilePath = GetSourcePath();
CloudBlockBlob blob = GetBlob(account);
Console.WriteLine("\nTransfer started...");
Stopwatch stopWatch = Stopwatch.StartNew();
await TransferManager.UploadAsync(localFilePath, blob);
stopWatch.Stop();
Console.WriteLine("\nTransfer operation completed in " + stopWatch.Elapsed.TotalSeconds + " seconds.");
ExecuteChoice(account);
}
Voortgang van overdracht bijhouden
U kunt de voortgang van de overdracht bijhouden tijdens de overdrachtsbewerking door een TransferContext
object te maken. Het TransferContext
object heeft twee vormen: SingleTransferContext
voor bestandsoverdrachten met één bestand en DirectoryTransferContext
voor mapoverdrachten.
Voeg de methoden GetSingleTransferContext
toe en GetDirectoryTransferContext
aan Program.cs
:
public static SingleTransferContext GetSingleTransferContext(TransferCheckpoint checkpoint)
{
SingleTransferContext context = new SingleTransferContext(checkpoint);
context.ProgressHandler = new Progress<TransferStatus>((progress) =>
{
Console.Write("\rBytes transferred: {0}", progress.BytesTransferred );
});
return context;
}
public static DirectoryTransferContext GetDirectoryTransferContext(TransferCheckpoint checkpoint)
{
DirectoryTransferContext context = new DirectoryTransferContext(checkpoint);
context.ProgressHandler = new Progress<TransferStatus>((progress) =>
{
Console.Write("\rBytes transferred: {0}", progress.BytesTransferred );
});
return context;
}
Wijzig de TransferLocalFileToAzureBlob
te gebruiken GetSingleTransferContext
methode:
public static async Task TransferLocalFileToAzureBlob(CloudStorageAccount account)
{
string localFilePath = GetSourcePath();
CloudBlockBlob blob = GetBlob(account);
TransferCheckpoint checkpoint = null;
SingleTransferContext context = GetSingleTransferContext(checkpoint);
Console.WriteLine("\nTransfer started...\n");
Stopwatch stopWatch = Stopwatch.StartNew();
await TransferManager.UploadAsync(localFilePath, blob, null, context);
stopWatch.Stop();
Console.WriteLine("\nTransfer operation completed in " + stopWatch.Elapsed.TotalSeconds + " seconds.");
ExecuteChoice(account);
}
Een geannuleerde overdracht hervatten
Een andere functie die wordt aangeboden door de bibliotheek voor gegevensverplaatsing, is de mogelijkheid om een geannuleerde overdracht te hervatten. Vervolgens voegen we code toe waarmee we de overdracht tijdelijk kunnen annuleren door te typen c
en de overdracht 3 seconden later te hervatten.
Wijzig de methode TransferLocalFileToAzureBlob
:
public static async Task TransferLocalFileToAzureBlob(CloudStorageAccount account)
{
string localFilePath = GetSourcePath();
CloudBlockBlob blob = GetBlob(account);
TransferCheckpoint checkpoint = null;
SingleTransferContext context = GetSingleTransferContext(checkpoint);
CancellationTokenSource cancellationSource = new CancellationTokenSource();
Console.WriteLine("\nTransfer started...\nPress 'c' to temporarily cancel your transfer...\n");
Stopwatch stopWatch = Stopwatch.StartNew();
Task task;
ConsoleKeyInfo keyinfo;
try
{
task = TransferManager.UploadAsync(localFilePath, blob, null, context, cancellationSource.Token);
while(!task.IsCompleted)
{
if(Console.KeyAvailable)
{
keyinfo = Console.ReadKey(true);
if(keyinfo.Key == ConsoleKey.C)
{
cancellationSource.Cancel();
}
}
}
await task;
}
catch(Exception e)
{
Console.WriteLine("\nThe transfer is canceled: {0}", e.Message);
}
if(cancellationSource.IsCancellationRequested)
{
Console.WriteLine("\nTransfer will resume in 3 seconds...");
Thread.Sleep(3000);
checkpoint = context.LastCheckpoint;
context = GetSingleTransferContext(checkpoint);
Console.WriteLine("\nResuming transfer...\n");
await TransferManager.UploadAsync(localFilePath, blob, null, context);
}
stopWatch.Stop();
Console.WriteLine("\nTransfer operation completed in " + stopWatch.Elapsed.TotalSeconds + " seconds.");
ExecuteChoice(account);
}
Tot nu toe is onze checkpoint
waarde ingesteld op null
. Als we de overdracht annuleren, halen we het laatste controlepunt van onze overdracht op, dan gebruiken we dit nieuwe controlepunt in onze overdrachtscontext.
Een lokale map overdragen naar Blob Storage
Met de bibliotheek voor gegevensverplaatsing kunt u een map met bestanden en alle bijbehorende submappen overdragen, zoals wordt weergegeven in het volgende voorbeeld.
Voeg eerst de methode GetBlobDirectory
toe aan Program.cs
:
public static CloudBlobDirectory GetBlobDirectory(CloudStorageAccount account)
{
CloudBlobClient blobClient = account.CreateCloudBlobClient();
Console.WriteLine("\nProvide name of Blob container. This can be a new or existing Blob container:");
string containerName = Console.ReadLine();
CloudBlobContainer container = blobClient.GetContainerReference(containerName);
container.CreateIfNotExistsAsync().Wait();
CloudBlobDirectory blobDirectory = container.GetDirectoryReference("");
return blobDirectory;
}
Wijzig TransferLocalDirectoryToAzureBlobDirectory
vervolgens:
public static async Task TransferLocalDirectoryToAzureBlobDirectory(CloudStorageAccount account)
{
string localDirectoryPath = GetSourcePath();
CloudBlobDirectory blobDirectory = GetBlobDirectory(account);
TransferCheckpoint checkpoint = null;
DirectoryTransferContext context = GetDirectoryTransferContext(checkpoint);
CancellationTokenSource cancellationSource = new CancellationTokenSource();
Console.WriteLine("\nTransfer started...\nPress 'c' to temporarily cancel your transfer...\n");
Stopwatch stopWatch = Stopwatch.StartNew();
Task task;
ConsoleKeyInfo keyinfo;
UploadDirectoryOptions options = new UploadDirectoryOptions()
{
Recursive = true
};
try
{
task = TransferManager.UploadDirectoryAsync(localDirectoryPath, blobDirectory, options, context, cancellationSource.Token);
while(!task.IsCompleted)
{
if(Console.KeyAvailable)
{
keyinfo = Console.ReadKey(true);
if(keyinfo.Key == ConsoleKey.C)
{
cancellationSource.Cancel();
}
}
}
await task;
}
catch(Exception e)
{
Console.WriteLine("\nThe transfer is canceled: {0}", e.Message);
}
if(cancellationSource.IsCancellationRequested)
{
Console.WriteLine("\nTransfer will resume in 3 seconds...");
Thread.Sleep(3000);
checkpoint = context.LastCheckpoint;
context = GetDirectoryTransferContext(checkpoint);
Console.WriteLine("\nResuming transfer...\n");
await TransferManager.UploadDirectoryAsync(localDirectoryPath, blobDirectory, options, context);
}
stopWatch.Stop();
Console.WriteLine("\nTransfer operation completed in " + stopWatch.Elapsed.TotalSeconds + " seconds.");
ExecuteChoice(account);
}
Er zijn enkele verschillen tussen deze methode en de methode voor het uploaden van één bestand. We gebruiken TransferManager.UploadDirectoryAsync
nu de methode die getDirectoryTransferContext
we eerder hebben gemaakt. Daarnaast bieden we nu een options
waarde voor onze uploadbewerking, waarmee we kunnen aangeven dat we submappen in onze upload willen opnemen.
Een bestand kopiëren van URL naar een blob
Nu gaan we code toevoegen waarmee we een bestand van een URL naar een Azure Blob kunnen kopiëren.
Wijzigen TransferUrlToAzureBlob
:
public static async Task TransferUrlToAzureBlob(CloudStorageAccount account)
{
Uri uri = new Uri(GetSourcePath());
CloudBlockBlob blob = GetBlob(account);
TransferCheckpoint checkpoint = null;
SingleTransferContext context = GetSingleTransferContext(checkpoint);
CancellationTokenSource cancellationSource = new CancellationTokenSource();
Console.WriteLine("\nTransfer started...\nPress 'c' to temporarily cancel your transfer...\n");
Stopwatch stopWatch = Stopwatch.StartNew();
Task task;
ConsoleKeyInfo keyinfo;
try
{
task = TransferManager.CopyAsync(uri, blob, CopyMethod.ServiceSideAsyncCopy, null, context, cancellationSource.Token);
while(!task.IsCompleted)
{
if(Console.KeyAvailable)
{
keyinfo = Console.ReadKey(true);
if(keyinfo.Key == ConsoleKey.C)
{
cancellationSource.Cancel();
}
}
}
await task;
}
catch(Exception e)
{
Console.WriteLine("\nThe transfer is canceled: {0}", e.Message);
}
if(cancellationSource.IsCancellationRequested)
{
Console.WriteLine("\nTransfer will resume in 3 seconds...");
Thread.Sleep(3000);
checkpoint = context.LastCheckpoint;
context = GetSingleTransferContext(checkpoint);
Console.WriteLine("\nResuming transfer...\n");
await TransferManager.CopyAsync(uri, blob, CopyMethod.ServiceSideAsyncCopy, null, context, cancellationSource.Token);
}
stopWatch.Stop();
Console.WriteLine("\nTransfer operation completed in " + stopWatch.Elapsed.TotalSeconds + " seconds.");
ExecuteChoice(account);
}
Een belangrijke use case voor deze functie is wanneer u gegevens van een andere cloudservice naar Azure moet verplaatsen. Als u een URL hebt die u toegang geeft tot de resource, kunt u die resource eenvoudig met behulp van de TransferManager.CopyAsync
methode naar Azure Blobs verplaatsen. Deze methode introduceert ook een CopyMethod-parameter . In de volgende tabel ziet u de beschikbare opties voor deze parameter:
De naam van lid | Weergegeven als | Beschrijving |
---|---|---|
SyncCopy | 0 | Download gegevens van bron naar geheugen en upload de gegevens van het geheugen naar de bestemming. Momenteel alleen beschikbaar voor het kopiëren van de ene Azure Storage-resource naar de andere. |
ServiceSideAsyncCopy | 1 | Verzend een aanvraag voor het kopiëren van een start naar Azure Storage om het kopiëren uit te voeren; controleer de voortgang van de kopieerbewerking totdat het kopiëren is voltooid. |
ServiceSideSyncCopy | 2 | Kopieer inhoud van elk segment met Put Block From URL, Append Block From URL of Put Page From URL. |
Een blob kopiëren
Een andere functie van de bibliotheek voor gegevensverplaatsing is de mogelijkheid om van de ene Azure Storage-resource naar de andere te kopiëren.
Wijzig de methode TransferAzureBlobToAzureBlob
:
public static async Task TransferAzureBlobToAzureBlob(CloudStorageAccount account)
{
CloudBlockBlob sourceBlob = GetBlob(account);
CloudBlockBlob destinationBlob = GetBlob(account);
TransferCheckpoint checkpoint = null;
SingleTransferContext context = GetSingleTransferContext(checkpoint);
CancellationTokenSource cancellationSource = new CancellationTokenSource();
Console.WriteLine("\nTransfer started...\nPress 'c' to temporarily cancel your transfer...\n");
Stopwatch stopWatch = Stopwatch.StartNew();
Task task;
ConsoleKeyInfo keyinfo;
try
{
task = TransferManager.CopyAsync(sourceBlob, destinationBlob, CopyMethod.SyncCopy, null, context, cancellationSource.Token);
while(!task.IsCompleted)
{
if(Console.KeyAvailable)
{
keyinfo = Console.ReadKey(true);
if(keyinfo.Key == ConsoleKey.C)
{
cancellationSource.Cancel();
}
}
}
await task;
}
catch(Exception e)
{
Console.WriteLine("\nThe transfer is canceled: {0}", e.Message);
}
if(cancellationSource.IsCancellationRequested)
{
Console.WriteLine("\nTransfer will resume in 3 seconds...");
Thread.Sleep(3000);
checkpoint = context.LastCheckpoint;
context = GetSingleTransferContext(checkpoint);
Console.WriteLine("\nResuming transfer...\n");
await TransferManager.CopyAsync(sourceBlob, destinationBlob, CopyMethod.SyncCopy, null, context, cancellationSource.Token);
}
stopWatch.Stop();
Console.WriteLine("\nTransfer operation completed in " + stopWatch.Elapsed.TotalSeconds + " seconds.");
ExecuteChoice(account);
}
In dit voorbeeld stellen we de booleaanse parameter in TransferManager.CopyAsync
om aan te CopyMethod.SyncCopy
geven dat we een synchrone kopie willen uitvoeren. Deze configuratie betekent dat de resource eerst naar onze lokale computer wordt gedownload en vervolgens naar Azure Blob wordt geüpload. De synchrone kopieeroptie is een uitstekende manier om ervoor te zorgen dat uw kopieerbewerking een consistente snelheid heeft. De snelheid van een asynchrone kopie aan de serverzijde is daarentegen afhankelijk van de beschikbare netwerkbandbreedte op de server, die kan fluctueren. Synchrone kopie kan echter extra kosten voor uitgaand verkeer genereren in vergelijking met asynchrone kopie. De aanbevolen methode is om synchrone kopie te gebruiken in een virtuele Azure-machine die zich in dezelfde regio bevindt als uw bronopslagaccount om uitgaande kosten te voorkomen.
De toepassing voor gegevensverplaatsing is nu voltooid. Het volledige codevoorbeeld is beschikbaar op GitHub.
Volgende stappen
Referentiedocumentatie voor azure Storage-bibliotheek voor gegevensverplaatsing.
Tip
Azure Blob Storage-resources beheren met Azure Storage Explorer. Azure Storage Explorer is een gratis, zelfstandige app van Microsoft waarmee u Azure Blob Storage-resources kunt beheren. Met Behulp van Azure Storage Explorer kunt u visueel blobcontainers en -blobs maken, lezen, bijwerken en verwijderen, en de toegang tot uw blobs-containers en -blobs beheren.