Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek ukazuje, jak nastavit nebo změnit úroveň přístupu objektu blob bloku pomocí klientské knihovny Azure Storage pro .NET.
Prerequisites
- Předplatné Azure – vytvoření bezplatného předplatného
- Účet úložiště Azure – Vytvoření účtu úložiště
- Nejnovější SDK .NET pro váš operační systém. Nezapomeňte získat SDK (softwarovou sadu pro vývoj) a ne runtime.
Nastavení prostředí
Pokud nemáte existující projekt, v této části se dozvíte, jak nastavit projekt pro práci s klientskou knihovnou Azure Blob Storage pro .NET. Kroky zahrnují instalaci balíčku, přidání using direktiv a vytvoření autorizovaného objektu klienta. Podrobnosti najdete v tématu Začínáme se službou Azure Blob Storage a .NET.
Instalace balíčků
Z adresáře projektu nainstalujte balíčky pro klientské knihovny Azure Blob Storage a Azure Identity pomocí dotnet add package příkazu. Balíček Azure.Identity je potřeba pro připojení bez hesla ke službám Azure.
dotnet add package Azure.Storage.Blobs
dotnet add package Azure.Identity
Přidejte using direktivy
Na začátek souboru kódu přidejte tyto using direktivy:
using Azure.Identity;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using Azure.Storage.Blobs.Specialized;
Některé příklady kódu v tomto článku mohou vyžadovat další using direktivy.
Vytvoření objektu klienta
Pokud chcete připojit aplikaci ke službě Blob Storage, vytvořte instanci BlobServiceClient. Následující příklad ukazuje, jak pomocí DefaultAzureCredential vytvořit objekt klienta pro autorizaci.
public BlobServiceClient GetBlobServiceClient(string accountName)
{
BlobServiceClient client = new(
new Uri($"https://{accountName}.blob.core.windows.net"),
new DefaultAzureCredential());
return client;
}
Můžete zaregistrovat služebního klienta pro injektování závislostí v aplikaci .NET.
Můžete také vytvořit klientské objekty pro konkrétní kontejnery nebo objekty blob. Další informace o vytváření a správě klientských objektů najdete v tématu Vytváření a správa klientských objektů, které pracují s datovými prostředky.
Authorization
Autorizační mechanismus musí mít potřebná oprávnění k nastavení úrovně přístupu objektu blob. K autorizaci pomocí Microsoft Entra ID (doporučeno) potřebujete předdefinovanou roli Azure RBAC Storage Blob Data Contributor nebo vyšší. Další informace najdete v pokynech k autorizaci pro nastavení úrovně objektů blob.
Informace o úrovních přístupu k objektům blob bloku
Pokud chcete spravovat náklady na potřeby úložiště, může být užitečné uspořádat data na základě toho, jak často se k nim přistupuje a jak dlouho je potřeba uchovávat. Azure Storage nabízí různé úrovně přístupu, takže data objektů blob můžete ukládat nákladově nejefektivnějším způsobem na základě způsobu jejich použití.
Úrovně přístupu k blob datům
Mezi úrovně přístupu ke službě Azure Storage patří:
- Horká úroveň – online úroveň optimalizovaná pro ukládání dat, ke kterým se přistupuje nebo mění často. Úroveň hot má nejvyšší náklady na úložiště, ale má nejnižší náklady na přístup.
- Úroveň chladného úložiště – online úložná úroveň optimalizovaná pro ukládání dat, která jsou zřídka přístupná nebo upravovaná. Data ve studené vrstvě by měla být uložena minimálně po dobu 30 dnů. Studená úroveň má nižší náklady na úložiště a vyšší náklady na přístup v porovnání s horkou úrovní.
- Studená úroveň – online úroveň optimalizovaná pro ukládání dat, která jsou zřídka přístupná nebo upravená. Data v chladné vrstvě by měla být uložená minimálně 90 dnů. Chladná úroveň má nižší náklady na úložiště a vyšší náklady na přístup v porovnání s úrovní cool.
- Archivní úroveň – offline úroveň optimalizovaná pro ukládání zřídka používaných dat a s flexibilními požadavky na latenci v řádu hodin. Data v archivní úrovni by měla být uložena minimálně po dobu 180 dnů.
Další informace o úrovních přístupu pro blob data naleznete v Úrovně přístupu pro blob data.
I když je objekt blob v archivní úrovni přístupu, považuje se za offline a nedá se číst ani upravovat. Chcete-li číst nebo upravovat data v archivovaném objektu blob, musíte nejprve aktivovat objekt blob do online vrstvy. Chcete-li se dozvědět více o rehydrataci objektu blob z archivní úrovně do online úrovně, podívejte se na Rehydratace objektů blob z archivní úrovně.
Restrictions
Nastavení úrovně přístupu je povolené jenom u blokových blobů. Další informace o omezeních nastavení úrovně přístupu objektu blob bloku najdete v tématu Nastavení úrovně objektů blob (REST API).
Note
Pokud chcete nastavit úroveň přístupu na Cold používání .NET, musíte použít minimální verzi klientské knihovny 12.15.0.
Nastavte úroveň přístupu objektu blob během nahrávání
Úroveň přístupu objektu blob můžete nastavit při nahrávání pomocí třídy BlobUploadOptions . Následující příklad kódu ukazuje, jak nastavit úroveň přístupu při nahrávání blobu.
public static async Task UploadWithAccessTierAsync(
BlobContainerClient containerClient,
string localFilePath)
{
string fileName = Path.GetFileName(localFilePath);
BlockBlobClient blockBlobClient = containerClient.GetBlockBlobClient(fileName);
var uploadOptions = new BlobUploadOptions()
{
AccessTier = AccessTier.Cool
};
FileStream fileStream = File.OpenRead(localFilePath);
await blockBlobClient.UploadAsync(fileStream, uploadOptions);
fileStream.Close();
}
Další informace o nahrání objektu blob pomocí .NET najdete v tématu Nahrání objektu blob pomocí .NET.
Změnit přístupovou úroveň existujícího blokového blobu
Úroveň přístupu existujícího objektu blob bloku můžete změnit pomocí jedné z následujících funkcí:
Následující příklad kódu ukazuje, jak změnit úroveň přístupu existujícího objektu blob na Cool:
public static async Task ChangeBlobAccessTierAsync(
BlobClient blobClient)
{
// Change the access tier of the blob to cool
await blobClient.SetAccessTierAsync(AccessTier.Cool);
}
Pokud rehydratujete archivovaný objekt blob, můžete volitelně nastavit parametr rehydratePriority na High nebo Standard.
Kopírujte objekt blob do jiné úrovně přístupu
Úroveň přístupu existujícího objektu blob bloku můžete změnit zadáním úrovně přístupu v rámci operace kopírování. Chcete-li změnit úroveň přístupu během operace kopírování, použijte BlobCopyFromUriOptions třídy a zadejte AccessTier vlastnost. Pokud obnovujete objekt blob z archivní vrstvy pomocí operace kopírování, můžete volitelně nastavit vlastnost RehydratePriority na High nebo Standard.
Následující příklad kódu ukazuje, jak rehydratovat archivovaný blob do Hot vrstvy kopírováním:
public static async Task RehydrateBlobUsingCopyAsync(
BlobClient sourceArchiveBlob,
BlobClient destinationRehydratedBlob)
{
// Note: the destination blob must have a different name than the archived source blob
// Configure copy options to specify hot tier and standard priority
BlobCopyFromUriOptions copyOptions = new()
{
AccessTier = AccessTier.Hot,
RehydratePriority = RehydratePriority.Standard
};
// Copy source blob from archive tier to destination blob in hot tier
CopyFromUriOperation copyOperation = await destinationRehydratedBlob
.StartCopyFromUriAsync(sourceArchiveBlob.Uri, copyOptions);
await copyOperation.WaitForCompletionAsync();
}
Další informace o kopírování objektu blob pomocí .NET najdete v tématu Kopírování objektu blob pomocí .NET.
Resources
Další informace o nastavení úrovní přístupu pomocí klientské knihovny Azure Blob Storage pro .NET najdete v následujících zdrojích informací.
Ukázky kódu
Operace rozhraní REST API
Sada Azure SDK pro .NET obsahuje knihovny, které jsou postavené na rozhraní Azure REST API a umožňují interakci s operacemi rozhraní REST API prostřednictvím známých paradigmat .NET. Metody klientské knihovny pro nastavení úrovní přístupu používají následující operaci rozhraní REST API:
- Nastavení úrovně objektů blob (REST API)
Prostředky klientské knihovny
Viz také
Související obsah
- Tento článek je součástí příručky pro vývojáře služby Blob Storage pro .NET. Další informace najdete v úplném seznamu článků příručky pro vývojáře na webu Sestavení aplikace .NET.