Rychlý Start: Klientská knihovna pro úložiště objektů BLOB v Azure V11 pro .NET
začínáme s klientskou knihovnou v11 pro Azure Blob Storage pro .net Azure Blob Storage je řešení úložiště objektů od microsoftu pro cloud. Postupujte podle kroků a nainstalujte balíček a vyzkoušejte ukázkový kód pro základní úlohy. Služba Blob Storage je optimalizovaná pro ukládání velkých objemů nestrukturovaných dat.
Poznámka
V tomto rychlém startu se používá starší verze klientské knihovny pro úložiště objektů BLOB v Azure. Pokud chcete začít používat nejnovější verzi, přečtěte si téma rychlý Start: Klientská knihovna Azure Blob Storage V12 pro .NET.
použijte klientskou knihovnu Azure Blob Storage pro .net pro:
- Vytvoření kontejneru
- Nastavení oprávnění pro kontejner
- Vytvoření objektu BLOB v Azure Storage
- Stažení objektu blob do místního počítače
- Výpis všech objektů BLOB v kontejneru
- Odstranění kontejneru
Další prostředky:
Požadavky
- Předplatné Azure – Vytvořte si ho zdarma .
- účet Azure Storage – vytvoření účtu úložiště
- Aktuální .NET Core SDK pro váš operační systém. Ujistěte se, že jste získali sadu SDK a ne modul runtime.
Nastavení
tato část vás provede přípravou projektu pro práci s klientskou knihovnou Azure Blob Storage pro .net.
Vytvoření projektu
Nejdřív vytvořte aplikaci .NET Core s názvem BLOB-Started.
V okně konzoly (například cmd, PowerShell nebo bash) použijte
dotnet newpříkaz k vytvoření nové aplikace konzoly s názvem BLOB – rychlý Start. Tento příkaz vytvoří jednoduchý projekt C# "Hello World" s jedním zdrojovým souborem: program. cs.dotnet new console -n blob-quickstartPřepněte do nově vytvořené složky pro rychlý Start objektů BLOB a sestavte aplikaci, abyste ověřili, jestli je vše v dobrém.
cd blob-quickstartdotnet build
Očekávaný výstup sestavení by měl vypadat přibližně takto:
C:\QuickStarts\blob-quickstart> dotnet build
Microsoft (R) Build Engine version 16.0.450+ga8dc7f1d34 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.
Restore completed in 44.31 ms for C:\QuickStarts\blob-quickstart\blob-quickstart.csproj.
blob-quickstart -> C:\QuickStarts\blob-quickstart\bin\Debug\netcoreapp2.1\blob-quickstart.dll
Build succeeded.
0 Warning(s)
0 Error(s)
Time Elapsed 00:00:03.08
Instalace balíčku
i když v adresáři aplikace ještě pořád nainstalujete balíček klientské knihovny Azure Blob Storage pro .net pomocí dotnet add package příkazu.
dotnet add package Microsoft.Azure.Storage.Blob
Nastavení aplikační architektury
Z adresáře projektu:
- Otevřete soubor program. cs v editoru.
- Odebrat
Console.WriteLinepříkaz - Přidat
usingdirektivy - Vytvořte
ProcessAsyncmetodu, kde bude umístěn hlavní kód pro příklad. - Asynchronní volání
ProcessAsyncmetody zMain
Zde je kód:
using System;
using System.IO;
using System.Threading.Tasks;
using Microsoft.Azure.Storage;
using Microsoft.Azure.Storage.Blob;
namespace blob_quickstart
{
class Program
{
public static async Task Main()
{
Console.WriteLine("Azure Blob Storage - .NET quickstart sample\n");
await ProcessAsync();
Console.WriteLine("Press any key to exit the sample application.");
Console.ReadLine();
}
private static async Task ProcessAsync()
{
}
}
}
Zkopírování přihlašovacích údajů z webu Azure Portal
když ukázková aplikace odešle požadavek na Azure Storage, musí být ověřena. K autorizaci žádosti přidejte do aplikace přihlašovací údaje účtu úložiště jako připojovací řetězec. Přihlašovací údaje účtu úložiště zobrazíte pomocí následujícího postupu:
Přejděte na Azure Portal.
Vyhledejte svůj účet úložiště.
V části Nastavení v přehledu účtu úložiště vyberte Přístupové klíče. Tady se zobrazí přístupové klíče vašeho účtu a úplný připojovací řetězec pro jednotlivé klíče.
V části key1 vyhledejte hodnotu Připojovací řetězec a výběrem tlačítka Kopírovat zkopírujte připojovací řetězec. V dalším kroku přidáte hodnotu připojovacího řetězce do proměnné prostředí.

Konfigurace připojovacího řetězce úložiště
Po zkopírování připojovacího řetězce ho zapište do nové proměnné prostředí na místním počítači, na kterém aplikaci spouštíte. Proměnnou prostředí nastavíte tak, že otevřete okno konzoly a budete postupovat podle pokynů pro váš operační systém. Nahraďte <yourconnectionstring> skutečným připojovacím řetězcem.
Windows
setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"
po přidání proměnné prostředí v Windows musíte spustit novou instanci příkazového okna.
Linux
export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"
MacOS
export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"
Po přidání proměnné prostředí restartujte všechny spuštěné programy, které budou muset číst proměnnou prostředí. Před pokračováním například restartujte vývojové prostředí nebo editor.
Objektový model
Úložiště objektů BLOB v Azure je optimalizované pro ukládání obrovských objemů nestrukturovaných dat. Jde o data, která nevyhovují konkrétnímu datovému modelu nebo definici, například textová nebo binární data. Úložiště objektů BLOB nabízí tři typy prostředků:
- Účet úložiště.
- Kontejner v účtu úložiště
- Objekt BLOB v kontejneru
Na následujícím diagramu jsou vztahy těchto prostředků.

Pro interakci s těmito prostředky použijte následující třídy .NET:
- CloudStorageAccount:
CloudStorageAccountTřída představuje váš účet služby Azure Storage. Tato třída slouží k autorizaci přístupu k úložišti objektů BLOB pomocí přístupových klíčů k účtu. - CloudBlobClient:
CloudBlobClientTřída poskytuje bod přístupu k BLOB Service ve vašem kódu. - CloudBlobContainer:
CloudBlobContainerTřída představuje kontejner objektů BLOB ve vašem kódu. - CloudBlockBlob:
CloudBlockBlobobjekt představuje objekt blob bloku ve vašem kódu. Objekty blob bloku se skládají z bloků dat, které můžete spravovat jednotlivě.
Příklady kódu
Tyto ukázkové fragmenty kódu ukazují, jak provést následující akce s klientskou knihovnou služby Azure Blob Storage pro .NET:
- Ověření klienta
- Vytvoření kontejneru
- Nastavení oprávnění pro kontejner
- Upload objektů blob do kontejneru
- Seznam objektů blob v kontejneru
- Stáhnout objekty blob
- Odstranění kontejneru
Ověření klienta
Následující kód kontroluje, zda proměnná prostředí obsahuje připojovací řetězec, který lze analyzovat a vytvořit tak objekt CloudStorageAccount odkazující na účet úložiště. Ke kontrole platnosti připojovacího řetězce použijte metodu TryParse. Pokud TryParse je úspěšná, inicializuje storageAccount proměnnou a vrátí true .
Přidejte tento kód do ProcessAsync metody:
// Retrieve the connection string for use with the application. The storage
// connection string is stored in an environment variable on the machine
// running the application called AZURE_STORAGE_CONNECTION_STRING. If the
// environment variable is created after the application is launched in a
// console or with Visual Studio, the shell or application needs to be closed
// and reloaded to take the environment variable into account.
string storageConnectionString = Environment.GetEnvironmentVariable("AZURE_STORAGE_CONNECTION_STRING");
// Check whether the connection string can be parsed.
CloudStorageAccount storageAccount;
if (CloudStorageAccount.TryParse(storageConnectionString, out storageAccount))
{
// If the connection string is valid, proceed with operations against Blob
// storage here.
// ADD OTHER OPERATIONS HERE
}
else
{
// Otherwise, let the user know that they need to define the environment variable.
Console.WriteLine(
"A connection string has not been defined in the system environment variables. " +
"Add an environment variable named 'AZURE_STORAGE_CONNECTION_STRING' with your storage " +
"connection string as a value.");
Console.WriteLine("Press any key to exit the application.");
Console.ReadLine();
}
Poznámka
Chcete-li provést zbytek operací v tomto článku, nahraďte // ADD OTHER OPERATIONS HERE kód uvedený výše pomocí fragmentů kódu v následujících oddílech.
Vytvoření kontejneru
Pokud chcete vytvořit kontejner, nejprve vytvořte instanci objektu CloudBlobClient, která odkazuje na úložiště objektů blob ve vašem účtu úložiště. Dále vytvořte instanci objektu CloudBlobContainer a pak vytvořte kontejner.
V tomto případě kód volá metodu CreateAsync pro vytvoření kontejneru. K názvu kontejneru se připojí hodnota GUID, která zajistí jeho jedinečnost. V produkčním prostředí je často vhodnější použít metodu CreateIfNotExistsAsync k vytvoření kontejneru pouze v případě, že ještě neexistuje.
Důležité
Názvy kontejnerů musí být malými písmeny. Další informace o pojmenování kontejnerů a objektů blob najdete v tématu Názvy kontejnerů, objektů blob a metadat a odkazování na ně.
// Create the CloudBlobClient that represents the
// Blob storage endpoint for the storage account.
CloudBlobClient cloudBlobClient = storageAccount.CreateCloudBlobClient();
// Create a container called 'quickstartblobs' and
// append a GUID value to it to make the name unique.
CloudBlobContainer cloudBlobContainer =
cloudBlobClient.GetContainerReference("quickstartblobs" +
Guid.NewGuid().ToString());
await cloudBlobContainer.CreateAsync();
Nastavení oprávnění pro kontejner
Nastavte oprávnění ke kontejneru tak, aby všechny objekty BLOB v kontejneru byly veřejné. Když je objekt blob veřejný, může k němu anonymně přistupovat jakýkoli klient.
// Set the permissions so the blobs are public.
BlobContainerPermissions permissions = new BlobContainerPermissions
{
PublicAccess = BlobContainerPublicAccessType.Blob
};
await cloudBlobContainer.SetPermissionsAsync(permissions);
Upload objektů blob do kontejneru
Následující fragment kódu získá odkaz na CloudBlockBlob objekt voláním metody GetBlockBlobReference v kontejneru vytvořeném v předchozí části. Pak nahraje vybraný místní soubor do objektu BLOB voláním metody UploadFromFileAsync . Tato metoda vytvoří objekt blob, pokud ještě neexistuje, a přepíše ho, pokud už existoval.
// Create a file in your local MyDocuments folder to upload to a blob.
string localPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
string localFileName = "QuickStart_" + Guid.NewGuid().ToString() + ".txt";
string sourceFile = Path.Combine(localPath, localFileName);
// Write text to the file.
File.WriteAllText(sourceFile, "Hello, World!");
Console.WriteLine("Temp file = {0}", sourceFile);
Console.WriteLine("Uploading to Blob storage as blob '{0}'", localFileName);
// Get a reference to the blob address, then upload the file to the blob.
// Use the value of localFileName for the blob name.
CloudBlockBlob cloudBlockBlob = cloudBlobContainer.GetBlockBlobReference(localFileName);
await cloudBlockBlob.UploadFromFileAsync(sourceFile);
Seznam objektů blob v kontejneru
Vypíše objekty BLOB v kontejneru pomocí metody ListBlobsSegmentedAsync . V tomto případě byl do kontejneru přidán pouze jeden objekt blob, takže operace výpisu vrátí pouze jeden objekt BLOB.
Pokud je příliš mnoho objektů blob, které se mají vrátit v jednom volání (ve výchozím nastavení je to více než 5000), pak ListBlobsSegmentedAsync Metoda vrátí segment celkové sady výsledků dotazu a token pro pokračování. K načtení dalšího segmentu objektů blob zadáte token pro pokračování vrácený z předchozího volání a tak dále, dokud token pro pokračování není nulový. Nulový token pro pokračování značí, že se načetly všechny objekty blob. Kód ukazuje, jak použít token pro pokračování v zájmu osvědčených postupů.
// List the blobs in the container.
Console.WriteLine("List blobs in container.");
BlobContinuationToken blobContinuationToken = null;
do
{
var results = await cloudBlobContainer.ListBlobsSegmentedAsync(null, blobContinuationToken);
// Get the value of the continuation token returned by the listing call.
blobContinuationToken = results.ContinuationToken;
foreach (IListBlobItem item in results.Results)
{
Console.WriteLine(item.Uri);
}
} while (blobContinuationToken != null); // Loop while the continuation token is not null.
Stáhnout objekty blob
Pomocí metody DownloadToFileAsync Stáhněte objekt blob, který jste dříve vytvořili do svého místního systému souborů. Vzorový kód přidá příponu "_DOWNLOADED" do názvu objektu blob, aby bylo možné zobrazit oba soubory v místním systému souborů.
// Download the blob to a local file, using the reference created earlier.
// Append the string "_DOWNLOADED" before the .txt extension so that you
// can see both files in MyDocuments.
string destinationFile = sourceFile.Replace(".txt", "_DOWNLOADED.txt");
Console.WriteLine("Downloading blob to {0}", destinationFile);
await cloudBlockBlob.DownloadToFileAsync(destinationFile, FileMode.Create);
Odstranění kontejneru
Následující kód vyčistí prostředky, které aplikace vytvořila, odstraněním celého kontejneru pomocí CloudBlobContainer. DeleteAsync. Pokud chcete, můžete odstranit také místní soubory.
Console.WriteLine("Press the 'Enter' key to delete the example files, " +
"example container, and exit the application.");
Console.ReadLine();
// Clean up resources. This includes the container and the two temp files.
Console.WriteLine("Deleting the container");
if (cloudBlobContainer != null)
{
await cloudBlobContainer.DeleteIfExistsAsync();
}
Console.WriteLine("Deleting the source, and downloaded files");
File.Delete(sourceFile);
File.Delete(destinationFile);
Spuštění kódu
Tato aplikace vytvoří testovací soubor v místní složce dokumenty a nahraje ho do úložiště objektů BLOB. Příklad zobrazí seznam objektů BLOB v kontejneru a stáhne soubor s novým názvem, abyste mohli porovnat staré a nové soubory.
Přejděte do adresáře aplikace a pak Sestavte a spusťte aplikaci.
dotnet build
dotnet run
Výstup aplikace je podobný následujícímu příkladu:
Azure Blob storage - .NET Quickstart example
Created container 'quickstartblobs33c90d2a-eabd-4236-958b-5cc5949e731f'
Temp file = C:\Users\myusername\Documents\QuickStart_c5e7f24f-a7f8-4926-a9da-96
97c748f4db.txt
Uploading to Blob storage as blob 'QuickStart_c5e7f24f-a7f8-4926-a9da-9697c748f
4db.txt'
Listing blobs in container.
https://storagesamples.blob.core.windows.net/quickstartblobs33c90d2a-eabd-4236-
958b-5cc5949e731f/QuickStart_c5e7f24f-a7f8-4926-a9da-9697c748f4db.txt
Downloading blob to C:\Users\myusername\Documents\QuickStart_c5e7f24f-a7f8-4926
-a9da-9697c748f4db_DOWNLOADED.txt
Press any key to delete the example files and example container.
Když stisknete klávesu Enter, aplikace odstraní kontejner úložiště i soubory. Před jejich odstraněním zkontrolujte, jestli složka Dokumenty obsahuje příslušné dva soubory. Můžete je otevřít a podívat se, že jsou identické. Obsah objektu blob můžete zobrazit zkopírováním adresy URL objektu blob z okna konzoly a jejím vložením do prohlížeče.
Po ověření souborů stiskněte libovolnou klávesu a dokončete ukázku a odstraňte testovací soubory.
Další kroky
V tomto rychlém startu jste zjistili, jak nahrávat, stahovat a vypisovat objekty blob pomocí .NET.
Pokud se chcete dozvědět, jak vytvořit webovou aplikaci, která nahrává obrázek do úložiště objektů blob, pokračujte:
- Další informace o .NET Core najdete v tématu Začínáme s .NET během 10 minut.
- Pokud chcete prozkoumat ukázkovou aplikaci, kterou můžete nasadit ze sady Visual Studio pro Windows, prohlédněte si ukázku webové aplikace fotogalerie v .NET s využitím služby Azure Blob Storage.