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ájlelérési utat, streamet vagy szöveges sztringet. Megnyithat egy blobstreamet is, és onnan olvashat.
Előfeltételek
- Ez a cikk feltételezi, hogy már van beállítva egy projekt, amely a .NET Azure Blob Storage ügyfélkódtárával működik. A projekt beállításáról, beleértve a csomagtelepítést, az irányelvek hozzáadását
using
és az engedélyezett ügyfélobjektumok létrehozását, olvassa el az Első lépések a Azure Blob Storage és a .NET használatával című témakört. - Az engedélyezési mechanizmusnak rendelkeznie kell a letöltési művelet végrehajtásához szükséges engedélyekkel. További információért tekintse meg az alábbi REST API-művelet 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, amely egy blobból olvas. A stream csak akkor tölti le a blobot, amikor a streamet a rendszer beolvassa. Az alábbi módszerek bármelyikét használhatja:
Letöltés fájlelérési útra
Az alábbi példa egy blobot tölt le egy helyi fájl elérési útjára. Ha a megadott könyvtár nem létezik, a kód egy DirectoryNotFoundException kivételt ad. Ha a fájl már létezik a helyen localFilePath
, a következő letöltések során alapértelmezés szerint felülírja.
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 az adott streambe. Ha a megadott könyvtár nem létezik, a kód egy DirectoryNotFoundException kivételt 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 feltételezi, hogy a blob egy szövegfá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 kódpéldák bemutatják, hogyan használható a BlobDownloadToOptions a konfigurációs beállítások meghatározására egy letöltési módszer meghívásakor. Vegye figyelembe, hogy ugyanezek a lehetőségek érhetők el a BlobDownloadOptions esetében is.
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 egy példányhoz StorageTransferOptions
, és hogyan foglalhatja bele a beállításokat BlobDownloadToOptions
. Az ebben a mintában megadott értékek nem javaslatok. Az értékek megfelelő hangolá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 lehetőségek finomhangolásával kapcsolatos további információkért lásd: Feltöltések és letöltések teljesítményhangolása.
Átadás-ellenőrzési beállítások megadása letöltéskor
Az átvitelérvényesítési beállítások megadásával biztosíthatja, hogy az adatok megfelelően töltődjenek le, és ne legyenek illetéktelenek az átvitel során. Az átadás-ellenőrzé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ól meghí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. Az alábbi példakód bemutatja, hogyan hozhat létre objektumot BlobDownloadToOptions
, és hogyan adhat meg algoritmust 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ő lehetőségeit mutatja be:
Name | É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. |
None | 1 | Nincs kijelölt algoritmus. Ne számítsa ki vagy kérje le az ellenőrzőösszegeket. |
MD5 | 2 | Standard MD5 kivonatolási algoritmus. |
StorageCrc64 | 3 | Egyéni 64 bites Azure Storage CRC. |
Források
A blobok .NET-hez készült Azure Blob Storage-ügyfélkódtár használatával történő letöltéséről az alábbi forrásokban talál további információt.
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 a jól ismert .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:
- Blob lekérése (REST API)