Delen via


Azure Storage Blobs-clientbibliotheek voor .NET - versie 12.15.1

Serverversie: 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-07 en 2019-02-02

Azure Blob Storage is Microsoft's oplossing voor de opslag van objecten in de cloud. Blob Storage is geoptimaliseerd voor het opslaan van enorme hoeveelheden niet-structureerde gegevens. Ongestructureerde gegevens zijn gegevens die niet voldoen aan een bepaald gegevensmodel of bepaalde definitie, zoals tekst of binaire gegevens.

Broncode | Pakket (NuGet) | API-referentiedocumentatie | REST API-documentatie | Productdocumentatie

Aan de slag

Het pakket installeren

Installeer de Azure Storage Blobs-clientbibliotheek voor .NET met NuGet:

dotnet add package Azure.Storage.Blobs

Vereisten

U hebt een Azure-abonnement en een opslagaccount nodig om dit pakket te kunnen gebruiken.

Als u een nieuw opslagaccount wilt maken, kunt u azure portal, Azure PowerShell of de Azure CLI gebruiken. Hier volgt een voorbeeld met behulp van de Azure CLI:

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

De client verifiëren

Als u wilt communiceren met de Azure Blobs Storage-service, moet u een exemplaar van de blobserviceclient-klasse maken. Met de Azure Identity-bibliotheek kunt u eenvoudig Azure Active Directory-ondersteuning toevoegen voor het verifiëren van Azure SDK-clients met de bijbehorende Azure-services.

// Create a BlobServiceClient that will authenticate through Active Directory
Uri accountUri = new Uri("https://MYSTORAGEACCOUNT.blob.core.windows.net/");
BlobServiceClient client = new BlobServiceClient(accountUri, new DefaultAzureCredential());

Meer informatie over het inschakelen van Azure Active Directory voor verificatie met Azure Storage vindt u in onze documentatie en onze voorbeelden.

Belangrijkste concepten

BLOB Storage is ontworpen voor:

  • Het rechtstreeks aan een browser leveren van afbeeldingen of documenten.
  • De opslag van bestanden voor gedistribueerde toegang.
  • Streaming van video en audio.
  • Schrijven naar logboekbestanden.
  • De opslag van gegevens voor back-up en herstel, herstel na noodgevallen en archivering.
  • De opslag van gegevens voor analyse door een on-premises of in Azure gehoste service.

Er zijn drie typen resources voor blobopslag:

  • Het opslagaccount dat wordt gebruikt via BlobServiceClient
  • Een container in het opslagaccount dat wordt gebruikt via BlobContainerClient
  • Een blob in een container die wordt gebruikt via BlobClient

Meer informatie over opties voor verificatie (waaronder verbindingsreeksen, gedeelde sleutel, handtekeningen voor gedeelde sleutels, Active Directory en anonieme openbare toegang)in onze voorbeelden.

Veiligheid van schroefdraad

We garanderen dat alle clientexemplaarmethoden thread-veilig en onafhankelijk van elkaar zijn (richtlijn). Dit zorgt ervoor dat de aanbeveling om clientexemplaren opnieuw te gebruiken altijd veilig is, zelfs voor alle threads.

Aanvullende concepten

Clientopties | Toegang tot het antwoord | Langlopende bewerkingen | Afhandeling van fouten | Diagnostics | Spottende | Clientlevensduur

Voorbeelden

Een blob uploaden

// Get a connection string to our Azure Storage account.  You can
// obtain your connection string from the Azure Portal (click
// Access Keys under Settings in the Portal Storage account blade)
// or using the Azure CLI with:
//
//     az storage account show-connection-string --name <account_name> --resource-group <resource_group>
//
// And you can provide the connection string to your application
// using an environment variable.

string connectionString = "<connection_string>";
string containerName = "sample-container";
string blobName = "sample-blob";
string filePath = "sample-file";

// Get a reference to a container named "sample-container" and then create it
BlobContainerClient container = new BlobContainerClient(connectionString, containerName);
container.Create();

// Get a reference to a blob named "sample-file" in a container named "sample-container"
BlobClient blob = container.GetBlobClient(blobName);

// Upload local file
blob.Upload(filePath);

Een blob downloaden

// Get a temporary path on disk where we can download the file
string downloadPath = "hello.jpg";

// Download the public blob at https://aka.ms/bloburl
new BlobClient(new Uri("https://aka.ms/bloburl")).DownloadTo(downloadPath);

Blobs opsommen

// Get a connection string to our Azure Storage account.
string connectionString = "<connection_string>";
string containerName = "sample-container";
string filePath = "hello.jpg";

// Get a reference to a container named "sample-container" and then create it
BlobContainerClient container = new BlobContainerClient(connectionString, containerName);
container.Create();

// Upload a few blobs so we have something to list
container.UploadBlob("first", File.OpenRead(filePath));
container.UploadBlob("second", File.OpenRead(filePath));
container.UploadBlob("third", File.OpenRead(filePath));

// Print out all the blob names
foreach (BlobItem blob in container.GetBlobs())
{
    Console.WriteLine(blob.Name);
}

Asynchrone API's

Zowel synchrone als asynchrone API's worden volledig ondersteund.

// Get a temporary path on disk where we can download the file
string downloadPath = "hello.jpg";

// Download the public blob at https://aka.ms/bloburl
await new BlobClient(new Uri("https://aka.ms/bloburl")).DownloadToAsync(downloadPath);

Problemen oplossen

Alle blob-servicebewerkingen genereren een RequestFailedException bij een fout met nuttige ErrorCodes. Veel van deze fouten kunnen worden hersteld.

// Get a connection string to our Azure Storage account.
string connectionString = "<connection_string>";
string containerName = "sample-container";

// Try to delete a container named "sample-container" and avoid any potential race conditions
// that might arise by checking if the container is already deleted or is in the process
// of being deleted.
BlobContainerClient container = new BlobContainerClient(connectionString, containerName);

try
{
    container.Delete();
}
catch (RequestFailedException ex)
    when (ex.ErrorCode == BlobErrorCode.ContainerBeingDeleted ||
          ex.ErrorCode == BlobErrorCode.ContainerNotFound)
{
    // Ignore any errors if the container being deleted or if it has already been deleted
}

Volgende stappen

Aan de slag met onze Blob-voorbeelden:

  1. Hallo wereld: blobs uploaden, downloaden en vermelden (of asynchroon)
  2. Verificatie: verifieer met verbindingsreeksen, openbare toegang, gedeelde sleutels, handtekeningen voor gedeelde toegang en Azure Active Directory.

Bijdragen

Zie de Storage CONTRIBUTING.md voor meer informatie over het bouwen, testen en bijdragen aan deze bibliotheek.

Wij verwelkomen bijdragen en suggesties voor dit project. Voor de meeste bijdragen moet u instemmen met een licentieovereenkomst voor bijdragers (CLA: Contributor License Agreement) waarin u verklaart dat u gerechtigd bent ons het recht te geven uw bijdrage te gebruiken, en dat u dit ook doet. Ga naar cla.microsoft.com voor meer informatie.

Op dit project is de Microsoft Open Source Code of Conduct (Microsoft Open Source-gedragscode) van toepassing. Zie voor meer informatie de veelgestelde vragen over de gedragscode of neem contact op opencode@microsoft.com met eventuele aanvullende vragen of opmerkingen.

Weergaven