Megosztás a következőn keresztül:


Blob letöltése .NET-tel

Ez a cikk bemutatja, hogyan tölthet le egy blobot a .NET-hez készült Azure Storage-ügyfélkódtár használatával. Blobadatokat különböző célhelyekre tölthet le, például helyi fájl elérési útját, streamét vagy szöveges sztringet. Megnyithat egy blobstreamet is, és olvashat belőle.

Előfeltételek

Saját környezet beállítása

Ha nem rendelkezik meglévő projekttel, ez a szakasz bemutatja, hogyan állíthat be projektet a .NET-hez készült Azure Blob Storage ügyfélkódtár használatához. A lépések közé tartozik a csomagtelepítés, az irányelvek hozzáadása using és egy engedélyezett ügyfélobjektum létrehozása. További részletekért tekintse meg az Azure Blob Storage és a .NET használatának első lépéseit.

Csomagok telepítése

A projektkönyvtárból telepítse az Azure Blob Storage- és Az Azure Identity-ügyfélkódtárak csomagjait a dotnet add package paranccsal. Az Azure.Identity-csomagra az Azure-szolgáltatásokhoz való jelszó nélküli kapcsolatokhoz van szükség.

dotnet add package Azure.Storage.Blobs
dotnet add package Azure.Identity

Irányelvek hozzáadása using

Adja hozzá ezeket az using irányelveket a kódfájl elejéhez:

using Azure.Identity;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using Azure.Storage.Blobs.Specialized;

A cikkben szereplő néhány példakód további using irányelveket igényelhet.

Ügyfélobjektum létrehozása

Ha egy alkalmazást a Blob Storage-hoz szeretne csatlakoztatni, hozzon létre egy BlobServiceClient-példányt. Az alábbi példa bemutatja, hogyan hozhat létre ügyfélobjektumot DefaultAzureCredential engedélyezés céljából:

public BlobServiceClient GetBlobServiceClient(string accountName)
{
    BlobServiceClient client = new(
        new Uri($"https://{accountName}.blob.core.windows.net"),
        new DefaultAzureCredential());

    return client;
}

A szolgáltatásügyfél regisztrálható a függőséginjektáláshoz egy .NET-alkalmazásban.

Ügyfélobjektumokat is létrehozhat adott tárolókhoz vagy blobokhoz. Az ügyfélobjektumok létrehozásáról és kezeléséről további információt az adaterőforrásokat kezelő ügyfélobjektumok létrehozása és kezelése című témakörben talál.

Engedélyezés

Az engedélyezési mechanizmusnak rendelkeznie kell a letöltési művelet végrehajtásához szükséges engedélyekkel. A Microsoft Entra-azonosítóval való engedélyezéshez (ajánlott) az Azure RBAC beépített storage-blobadat-olvasó vagy újabb szerepkörre van szüksége. További információkért tekintse meg a Blob lekérése (REST API) engedélyezési útmutatóját.

Blob letöltése

A blobok letöltéséhez az alábbi módszerek bármelyikét használhatja:

Megnyithat egy streamet is egy blobból való olvasáshoz. A stream csak a stream olvasása során tölti le a blobot. Az alábbi módszerek bármelyikét használhatja:

Letöltés fájlelérési útvonalra

Az alábbi példa letölt egy blobot egy helyi fájl elérési útjára. Ha a megadott könyvtár nem létezik, a kód egy DirectoryNotFoundException parancsot ad. Ha a fájl már létezik localFilePath, a rendszer alapértelmezés szerint felülírja a következő letöltések során.

public static async Task DownloadBlobToFileAsync(
    BlobClient blobClient,
    string localFilePath)
{
    await blobClient.DownloadToAsync(localFilePath);
}

Letöltés streambe

Az alábbi példa letölt egy blobot egy Stream-objektum létrehozásával, majd letölti a streambe. Ha a megadott könyvtár nem létezik, a kód egy DirectoryNotFoundException parancsot ad.

public static async Task DownloadBlobToStreamAsync(
    BlobClient blobClient,
    string localFilePath)
{
    FileStream fileStream = File.OpenWrite(localFilePath);

    await blobClient.DownloadToAsync(fileStream);

    fileStream.Close();
}

Letöltés sztringre

Az alábbi példa azt feltételezi, hogy a blob egy szöveges fájl, és letölti a blobot egy sztringbe:

public static async Task DownloadBlobToStringAsync(BlobClient blobClient)
{
    BlobDownloadResult downloadResult = await blobClient.DownloadContentAsync();
    string blobContents = downloadResult.Content.ToString();
}

Letöltés streamből

Az alábbi példa egy blobot tölt le egy streamből való olvasással:

public static async Task DownloadBlobFromStreamAsync(
    BlobClient blobClient,
    string localFilePath)
{
    using (var stream = await blobClient.OpenReadAsync())
    {
        FileStream fileStream = File.OpenWrite(localFilePath);
        await stream.CopyToAsync(fileStream);
    }
}

Blokkblob letöltése konfigurációs beállításokkal

Blob letöltésekor megadhatja az ügyfélkódtár konfigurációs beállításait. Ezek a beállítások a teljesítmény javítása és a megbízhatóság növelése érdekében hangolhatók. Az alábbi példakód bemutatja, hogyan definiálhat konfigurációs beállításokat a BlobDownloadToOptions használatával egy letöltési módszer meghívásakor. Vegye figyelembe, hogy a BlobDownloadOptions esetében ugyanezek a lehetőségek érhetők el.

Adatátviteli beállítások megadása letöltéskor

A StorageTransferOptions értékeit konfigurálhatja az adatátviteli műveletek teljesítményének javítása érdekében. Az alábbi példakód bemutatja, hogyan állíthat be értékeket StorageTransferOptions egy példányhoz, és hogyan foglalhatja bele a beállításokat BlobDownloadToOptions . Az ebben a mintában megadott értékek nem javaslatok. Ezeknek az értékeknek a megfelelő finomhangolásához figyelembe kell vennie az alkalmazás adott igényeit.

public static async Task DownloadBlobWithTransferOptionsAsync(
    BlobClient blobClient,
    string localFilePath)
{
    FileStream fileStream = File.OpenWrite(localFilePath);

    var transferOptions = new StorageTransferOptions
    {
        // Set the maximum number of parallel transfer workers
        MaximumConcurrency = 2,

        // Set the initial transfer length to 8 MiB
        InitialTransferSize = 8 * 1024 * 1024,

        // Set the maximum length of a transfer to 4 MiB
        MaximumTransferSize = 4 * 1024 * 1024
    };

    BlobDownloadToOptions downloadOptions = new BlobDownloadToOptions()
    {
        TransferOptions = transferOptions
    };

    await blobClient.DownloadToAsync(fileStream, downloadOptions);

    fileStream.Close();
}

Az adatátviteli beállítások finomhangolásával kapcsolatos további információkért lásd a feltöltések és letöltések teljesítményhangolását.

Átviteli érvényesítési beállítások megadása letöltéskor

Az átviteli érvényesítési beállításokat megadhatja, hogy az adatok megfelelően töltődjenek le, és ne legyenek illetéktelenek az átvitel során. Az átviteli érvényesítési beállítások ügyfélszinten definiálhatók a BlobClientOptions használatával, amely érvényesítési beállításokat alkalmaz a BlobClient-példánybólhívott összes metódusra.

A BlobDownloadToOptions használatával felülbírálhatja az átvitelérvényesítési beállításokat a metódus szintjén is. Az alábbi példakód bemutatja, hogyan hozhat létre objektumot BlobDownloadToOptions , és hogyan adhat meg algoritmust egy ellenőrzőösszeg létrehozásához. Ezt követően a szolgáltatás az ellenőrzőösszeget használja a letöltött tartalom adatintegritásának ellenőrzésére.

public static async Task DownloadBlobWithChecksumAsync(
    BlobClient blobClient,
    string localFilePath)
{
    FileStream fileStream = File.OpenWrite(localFilePath);

    var validationOptions = new DownloadTransferValidationOptions
    {
        AutoValidateChecksum = true,
        ChecksumAlgorithm = StorageChecksumAlgorithm.Auto
    };

    BlobDownloadToOptions downloadOptions = new BlobDownloadToOptions()
    {
        TransferValidation = validationOptions
    };

    await blobClient.DownloadToAsync(fileStream, downloadOptions);

    fileStream.Close();
}

Az alábbi táblázat a StorageChecksumAlgorithm által meghatározott ellenőrzőösszeg-algoritmus elérhető beállításait mutatja be:

Név szerint Érték Leírás
Automatikus 0 Ajánlott. Lehetővé teszi, hogy a kódtár algoritmust válasszon. A kódtár különböző verziói különböző algoritmusokat választhatnak.
Egyik sem 0 Nincs kijelölt algoritmus. Ne számítsa ki vagy kérje az ellenőrzőösszegeket.
MD5 2 Standard MD5 kivonatoló algoritmus.
StorageCrc64 3 Egyéni Azure Storage 64 bites CRC.

Források

Ha többet szeretne megtudni arról, hogyan tölthet le blobokat a .NET-hez készült Azure Blob Storage ügyfélkódtár használatával, tekintse meg az alábbi erőforrásokat.

REST API-műveletek

A .NET-hez készült Azure SDK olyan kódtárakat tartalmaz, amelyek az Azure REST API-ra épülnek, lehetővé téve a REST API-műveletek használatát ismerős .NET-paradigmákon keresztül. A blobok letöltéséhez használt ügyfélkódtár-metódusok a következő REST API-műveletet használják:

Kódminták

Ügyfélkódtár erőforrásai

Lásd még