Az Azure Storage Blobs ügyfélkódtára a .NET-hez – 12.15.1-es verzió

Kiszolgáló verziója: 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 és 2019-02-02

Az Azure Blob Storage a Microsoft felhőalapú objektumtárolási megoldása. A Blob Storage nagy mennyiségű strukturálatlan adat tárolására van optimalizálva. A strukturálatlan adatok olyan adatok, amelyek nem követnek egy adott adatmodellt vagy definíciót, például szöveges vagy bináris adatok.

Forráskód | Csomag (NuGet) | API-referenciadokumentáció | REST API-dokumentáció | Termékdokumentáció

Első lépések

A csomag telepítése

Telepítse a .NET-hez készült Azure Storage Blobs-ügyfélkódtárat a NuGet használatával:

dotnet add package Azure.Storage.Blobs

Előfeltételek

A csomag használatához Azure-előfizetésre és tárfiókra van szükség.

Új tárfiók létrehozásához használhatja az Azure Portalt, a Azure PowerShell vagy az Azure CLI-t. Íme egy példa az Azure CLI használatával:

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

Az ügyfél hitelesítése

Az Azure Blobs Storage szolgáltatás használatához létre kell hoznia a BlobServiceClient osztály egy példányát. Az Azure Identity-kódtár megkönnyíti az Azure Active Directory-támogatás hozzáadását az Azure SDK-ügyfelek hitelesítéséhez a hozzájuk tartozó Azure-szolgáltatásokkal.

// 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());

A dokumentációnkban és a példáinkban további információt talál az Azure Active Directory Azure Storage-beli hitelesítéshez való engedélyezéséről.

Fő fogalmak

A Blob Storage használati lehetőségei:

  • Képek vagy dokumentumok közvetlen szolgáltatása a böngészők számára.
  • Fájlok tárolása megosztott hozzáféréshez.
  • Video- és hangtartalom streamelése.
  • Írás naplófájlokba.
  • Adattárolás biztonsági mentésekhez és helyreállításhoz, vészhelyreállításhoz és archiváláshoz.
  • Adattárolás helyszíni vagy az Azure-ban üzemeltetett szolgáltatásban való elemzéshez.

A Blob Storage háromféle erőforrást kínál:

  • A következőn keresztül használt tárfiók : BlobServiceClient
  • Egy tároló a tárfiókban, amelyet a BlobContainerClient
  • Blob egy tárolóban, amelyet aBlobClient

A mintáinkban további információt találhat a hitelesítési lehetőségekről (beleértve a kapcsolati sztringeket, a megosztott kulcsot, a közös kulcsú aláírásokat, az Active Directoryt és a névtelen nyilvános hozzáférést).

Menetbiztonság

Garantáljuk, hogy minden ügyfélpéldány-metódus szálbiztos és független egymástól (útmutató). Ez biztosítja, hogy az ügyfélpéldányok újrafelhasználására vonatkozó javaslat mindig biztonságos legyen, még a szálak között is.

További fogalmak

Ügyfélbeállítások | A válasz | elérése Hosszú ideig futó műveletek | Hibák | kezelése Diagnosztika | Gúnyos | Ügyfélélettartam

Példák

Blob feltöltése

// 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);

Blob letöltése

// 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);

Blobok számbavétele

// 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);
}

Aszinkron API-k

Teljes mértékben támogatjuk a szinkron és az aszinkron API-kat is.

// 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);

Hibaelhárítás

Minden Blob-szolgáltatásművelet egy RequestFailedException kivételt küld a hasznos ErrorCodes hiba esetén. Ezek közül a hibák közül sok helyreállítható.

// 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
}

Következő lépések

Ismerkedés a blobmintákkal:

  1. "Helló világ!" alkalmazás: Blobok feltöltése, letöltése és listázása (vagy aszinkron módon)
  2. Hitelesítés: Hitelesítés kapcsolati sztringekkel, nyilvános hozzáféréssel, megosztott kulcsokkal, közös hozzáférésű jogosultságkódokkal és Azure Active Directoryval.

Közreműködés

A tár felépítéséről, teszteléséről és közreműködéséről további információt a Storage CONTRIBUTING.md talál.

A projektben szívesen fogadjuk a hozzájárulásokat és a javaslatokat. A legtöbb hozzájáruláshoz el kell fogadnia egy Közreműködői licencszerződést (CLA-t), amelyben kijelenti, hogy jogosult arra, hogy ránk ruházza hozzájárulása felhasználási jogát, és ezt ténylegesen meg is teszi. Részletekért látogasson el cla.microsoft.com.

A projekt a Microsoft nyílt forráskódú projekteket szabályozó etikai kódexe, a Microsoft Open Source Code of Conduct hatálya alá esik. További információkért lásd a viselkedési szabályzattal kapcsolatos gyakori kérdéseket , vagy vegye fel a kapcsolatot opencode@microsoft.com az esetleges további kérdésekkel vagy megjegyzésekkel.

Megjelenések