Přístupovou vrstvu objektu blob můžete nastavit některým z následujících způsobů:
Nastavením výchozí úrovně přístupu online pro účet úložiště. Objekty blob v účtu dědí tuto úroveň přístupu, pokud explicitně nepřepíšete nastavení pro jednotlivé objekty blob.
Explicitním nastavením vrstvy objektu blob při nahrávání. Objekt blob můžete vytvořit v horké, studené, studené nebo archivní úrovni.
Změnou vrstvy existujícího objektu blob pomocí operace Nastavit úroveň objektu blob. Tuto operaci byste obvykle použili k přechodu z horké vrstvy na chladnější.
Zkopírováním objektu blob s operací kopírování objektu blob. Tuto operaci byste obvykle použili k přechodu z chladnější vrstvy na horkou.
Tento článek popisuje, jak spravovat objekt blob v online úrovni přístupu. Další informace o přesunu objektu blob do archivní úrovně najdete v tématu Archivace objektu blob. Další informace o dosazování objektu blob z archivní úrovně najdete v tématu Rehydrate archivovaný objekt blob do online vrstvy.
Další informace o úrovních přístupu pro objekty blob najdete v tématu Úrovně přístupu pro data objektů blob.
Nastavení výchozí úrovně přístupu pro účet úložiště
Výchozí nastavení úrovně přístupu pro účet úložiště pro obecné účely v2 určuje, ve které online vrstvě se ve výchozím nastavení vytvoří nový objekt blob. Výchozí úroveň přístupu pro účet úložiště pro obecné účely verze 2 můžete nastavit v době, kdy účet vytvoříte, nebo aktualizací konfigurace existujícího účtu.
Když změníte výchozí nastavení úrovně přístupu pro existující účet úložiště pro obecné účely verze 2, tato změna se vztahuje na všechny objekty blob v účtu, pro které nebyla explicitně nastavena úroveň přístupu. Změna výchozí úrovně přístupu může mít dopad na fakturaci. Podrobnosti najdete v tématu Výchozí nastavení úrovně přístupu k účtu.
Pokud chcete nastavit výchozí úroveň přístupu pro účet úložiště při vytváření na webu Azure Portal, postupujte takto:
Přejděte na stránku Účty úložiště a vyberte tlačítko Vytvořit .
Vyplňte kartu Základy .
Na kartě Upřesnit v části Úložiště objektů blob nastavte úroveň Přístupu na horkou, studenou nebo studenou. Výchozí nastavení je Horké.
Vyberte Zkontrolovat a vytvořit , abyste ověřili nastavení a vytvořili účet úložiště.
Pokud chcete aktualizovat výchozí úroveň přístupu pro existující účet úložiště na webu Azure Portal, postupujte takto:
Na webu Azure Portal přejděte k účtu úložiště.
V části Nastavení vyberte Konfigurace.
Vyhledejte nastavení úrovně přístupu k objektům blob (výchozí) a vyberte horkou, studenou nebo studenou. Výchozí nastavení je Horká, pokud jste tuto vlastnost ještě nenastavili.
Uložte provedené změny.
Pokud chcete změnit výchozí nastavení úrovně přístupu pro účet úložiště pomocí PowerShellu, zavolejte příkaz Set-AzStorageAccount a zadejte novou výchozí úroveň přístupu.
Pokud chcete změnit výchozí nastavení úrovně přístupu pro účet úložiště pomocí PowerShellu, zavolejte příkaz Set-AzStorageAccount a zadejte novou výchozí úroveň přístupu.
# Change the storage account tier to cool
az storage account update \
--resource-group <resource-group> \
--name <storage-account> \
--access-tier Cool
–
Nastavení vrstvy objektu blob při nahrání
Když nahrajete objekt blob do služby Azure Storage, máte dvě možnosti nastavení vrstvy objektu blob při nahrávání:
Můžete explicitně zadat úroveň, ve které se objekt blob vytvoří. Toto nastavení přepíše výchozí úroveň přístupu pro účet úložiště. Úroveň objektu blob nebo sady objektů blob můžete nastavit při nahrávání do horké, studené, studené nebo archivní.
Objekt blob můžete nahrát bez zadání vrstvy. V tomto případě se objekt blob vytvoří ve výchozí úrovni přístupu zadané pro účet úložiště (horké nebo studené).
Pokud nahráváte nový objekt blob, který používá obor šifrování, nemůžete změnit úroveň přístupu pro tento objekt blob.
Následující části popisují, jak určit, že se objekt blob nahraje do horké nebo studené úrovně. Další informace o archivaci objektu blob při nahrávání najdete v tématu Archivace objektů blob při nahrání.
Nahrání objektu blob do konkrétní online úrovně
Pokud chcete vytvořit objekt blob v horké, studené nebo studené úrovni, určete tuto úroveň při vytváření objektu blob. Úroveň přístupu zadaná při nahrávání přepíše výchozí úroveň přístupu pro účet úložiště.
Pokud chcete nahrát objekt blob nebo sadu objektů blob na konkrétní úroveň z webu Azure Portal, postupujte takto:
Přejděte do cílového kontejneru.
vyberte tlačítko Nahrát.
Vyberte soubor nebo soubory, které chcete nahrát.
Rozbalte část Upřesnit a nastavte úroveň přístupu na horkou nebo studenou.
vyberte tlačítko Nahrát.
Pokud chcete nahrát objekt blob nebo sadu objektů blob do konkrétní úrovně pomocí PowerShellu, zavolejte příkaz Set-AzStorageBlobContent , jak je znázorněno v následujícím příkladu. Nezapomeňte nahradit zástupné hodnoty v závorkách vlastními hodnotami:
$rgName = <resource-group>
$storageAccount = <storage-account>
$containerName = <container>
# tier can be hot, cool, cold, or archive
$tier = <tier>
# Get context object
$ctx = New-AzStorageContext -StorageAccountName $storageAccount -UseConnectedAccount
# Create new container.
New-AzStorageContainer -Name $containerName -Context $ctx
# Upload a single file named blob1.txt to the cool tier.
Set-AzStorageBlobContent -Container $containerName `
-File "blob1.txt" `
-Blob "blob1.txt" `
-Context $ctx `
-StandardBlobTier Cool
# Upload the contents of a sample-blobs directory to the cool tier, recursively.
Get-ChildItem -Path "C:\sample-blobs" -File -Recurse |
Set-AzStorageBlobContent -Container $containerName `
-Context $ctx `
-StandardBlobTier $tier
Pokud chcete nahrát objekt blob do konkrétní úrovně pomocí Azure CLI, zavolejte příkaz az storage blob upload , jak je znázorněno v následujícím příkladu. Nezapomeňte nahradit zástupné hodnoty v hranatých závorkách vlastními hodnotami. <tier> Zástupný symbol nahraďte znakem hot, cool, coldnebo archive.
Pokud chcete nahrát sadu objektů blob do konkrétní úrovně pomocí Azure CLI, zavolejte příkaz az storage blob upload-batch , jak je znázorněno v následujícím příkladu. Nezapomeňte nahradit zástupné hodnoty v hranatých závorkách vlastními hodnotami. <tier> Zástupný symbol nahraďte znakem hot, cool, coldnebo archive.
K nahrání objektu blob do konkrétní úrovně pomocí nástroje AzCopy použijte příkaz azcopy copy a nastavte --block-blob-tier parametr na hot, coolnebo archive.
Poznámka:
Tento příklad uzavře argumenty cesty do jednoduchých uvozovek ('' ). Použití jednoduchých uvozovek ve všech příkazových prostředích s výjimkou prostředí Windows Command Shell (cmd.exe). Pokud používáte prostředí Windows Command Shell (cmd.exe), uzavřete argumenty cesty do dvojitých uvozovek ("") místo jednoduchých uvozovek ('' ). Tento příklad vylučuje token SAS, protože předpokládá, že jste zadali autorizační přihlašovací údaje pomocí Microsoft Entra ID. Informace o způsobech zadání přihlašovacích údajů pro autorizaci pro službu úložiště najdete v článku Začínáme s nástrojem AzCopy .
Pokud chcete nahrát sadu objektů blob do konkrétní úrovně pomocí nástroje AzCopy, projděte si místní adresář nebo obsah místního adresáře a připojte --recursive=true se k příkazu.
Účty úložiště mají výchozí nastavení úrovně přístupu, které označuje, ve které online vrstvě se vytvoří nový objekt blob. Výchozí nastavení úrovně přístupu je možné nastavit na horkou nebo studenou. Chování tohoto nastavení se mírně liší v závislosti na typu účtu úložiště:
Výchozí úroveň přístupu pro nový účet úložiště pro obecné účely v2 je ve výchozím nastavení nastavená na horkou úroveň. Výchozí nastavení úrovně přístupu můžete změnit při vytváření účtu úložiště nebo po jeho vytvoření.
Při vytváření starší verze účtu blob Storage musíte při vytváření účtu úložiště zadat výchozí nastavení úrovně přístupu jako horké nebo studené. Po vytvoření účtu úložiště můžete změnit výchozí nastavení úrovně přístupu.
Objekt blob, který nemá explicitně přiřazenou vrstvu, odvodí její úroveň z výchozího nastavení úrovně přístupu k účtu. Přístupovou vrstvu objektu blob můžete zjistit pomocí webu Azure Portal, PowerShellu nebo Azure CLI.
Pokud se úroveň přístupu objektu blob odvozuje z výchozího nastavení úrovně přístupu účtu, azure Portal zobrazí úroveň přístupu jako horká (odvozená), studenou (odvozenou) nebo studenou (odvozenou) nebo studenou (odvozenou).
Pokud chcete zjistit úroveň přístupu objektu blob a zjistit, jestli je odvozená z Azure PowerShellu, načtěte objekt blob a zkontrolujte jeho vlastnosti AccessTier a AccessTierInferred.
$rgName = "<resource-group>"
$storageAccount = "<storage-account>"
$containerName = "<container>"
$blobName = "<blob>"
# Get the storage account context.
$ctx = New-AzStorageContext -StorageAccountName $storageAccount -UseConnectedAccount
# Get the blob from the service.
$blob = Get-AzStorageBlob -Context $ctx -Container $containerName -Blob $blobName
# Check the AccessTier and AccessTierInferred properties.
# If the access tier is inferred, that property returns true.
$blob.BlobProperties.AccessTier
$blob.BlobProperties.AccessTierInferred
Pokud chcete zjistit úroveň přístupu objektu blob a zjistit, jestli je odvozená z Azure CLI, načtěte objekt blob a zkontrolujte jeho vlastnosti blobTier a blobTierInferred .
K přesunutí objektu blob do jiné úrovně použijte PowerShell, Azure CLI, AzCopy v10 nebo jednu z klientských knihoven služby Azure Storage.
Změna úrovně objektu blob
Když změníte úroveň objektu blob, přesunete tento objekt blob a všechna její data do cílové úrovně zavoláním operace Set Blob Tier (buď přímo, nebo prostřednictvím zásad správy životního cyklu), nebo pomocí příkazu azcopy set-properties v AzCopy. Tato možnost je obvykle nejlepší, když měníte úroveň objektu blob z horké vrstvy na chladnější.
Tip
Úlohu úložiště můžete použít ke změně úrovně přístupu objektů blob ve velkém měřítku napříč několika účty úložiště na základě sady podmínek, které definujete. Úloha úložiště je prostředek dostupný v Azure Storage Actions. Bezserverová architektura, kterou můžete použít k provádění běžných operací s daty u milionů objektů v několika účtech úložiště. Další informace najdete v tématu Co je Akce služby Azure Storage?.
Pokud chcete změnit úroveň objektu blob na chladnější úroveň na webu Azure Portal, postupujte takto:
Přejděte k objektu blob, pro který chcete změnit úroveň.
Vyberte objekt blob a pak vyberte tlačítko Změnit úroveň .
V dialogovém okně Změnit úroveň vyberte cílovou úroveň.
Vyberte tlačítko Uložit.
Pokud chcete změnit úroveň objektu blob na chladnější vrstvu pomocí PowerShellu, použijte vlastnost BlobClient objektu blob k vrácení odkazu na objekt blob . NET a pak v daném odkazu zavolejte metodu SetAccessTier. Nezapomeňte nahradit zástupné symboly v lomených závorkách vlastními hodnotami:
# Initialize these variables with your values.
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$containerName = "<container>"
$blobName = "<blob>"
$tier = "<tier>"
# Get the storage account context
$ctx = (Get-AzStorageAccount `
-ResourceGroupName $rgName `
-Name $accountName).Context
# Change the blob's access tier.
$blob = Get-AzStorageBlob -Container $containerName -Blob $blobName -Context $ctx
$blob.BlobClient.SetAccessTier($tier, $null, "Standard")
Pokud chcete změnit úroveň objektu blob na chladnější úroveň pomocí Azure CLI, zavolejte příkaz az storage blob set-tier . Nezapomeňte nahradit zástupné symboly v lomených závorkách vlastními hodnotami:
Pokud chcete změnit úroveň objektu blob na chladnější úroveň, použijte příkaz azcopy set-properties a nastavte -block-blob-tier parametr.
Důležité
Použití AzCopy ke změně úrovně přístupu objektu blob je aktuálně ve verzi PREVIEW.
Právní podmínky, které platí pro funkce Azure, které jsou ve verzi beta, verzi Preview nebo které zatím nejsou veřejně dostupné, najdete v Dodatečných podmínkách použití pro Microsoft Azure verze Preview.
Poznámka:
Tento příklad uzavře argumenty cesty do jednoduchých uvozovek ('' ). Použití jednoduchých uvozovek ve všech příkazových prostředích s výjimkou prostředí Windows Command Shell (cmd.exe). Pokud používáte prostředí Windows Command Shell (cmd.exe), uzavřete argumenty cesty do dvojitých uvozovek ("") místo jednoduchých uvozovek ('' ). Tento příklad vylučuje token SAS, protože předpokládá, že jste zadali autorizační přihlašovací údaje pomocí Microsoft Entra ID. Informace o způsobech zadání přihlašovacích údajů pro autorizaci pro službu úložiště najdete v článku Začínáme s nástrojem AzCopy .
Pokud chcete změnit úroveň přístupu pro všechny objekty blob ve virtuálním adresáři, použijte místo názvu objektu blob název virtuálního adresáře a připojte --recursive=true se k příkazu.
Volání operace kopírování objektu blob pro zkopírování objektu blob z jedné vrstvy do jiné. Když objekt blob zkopírujete do jiné úrovně, přesunete tento objekt blob a všechna jeho data do cílové úrovně. Zdrojový objekt blob zůstane v původní úrovni a v cílové vrstvě se vytvoří nový objekt blob. Volání objektu blob kopírování se doporučuje pro většinu scénářů, kdy přesouváte objekt blob na teplejší úroveň nebo dosazujete objekt blob z archivní vrstvy.
Pokud chcete zkopírovat objekt blob ze studené na horkou pomocí PowerShellu, zavolejte příkaz Start-AzStorageBlobCopy a zadejte cílovou úroveň. Nezapomeňte nahradit zástupné symboly v lomených závorkách vlastními hodnotami:
# Initialize these variables with your values.
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$srcContainerName = "<source-container>"
$destContainerName = "<dest-container>"
$srcBlobName = "<source-blob>"
$destBlobName = "<dest-blob>"
# Get the storage account context
$ctx = (Get-AzStorageAccount `
-ResourceGroupName $rgName `
-Name $accountName).Context
# Copy the source blob to a new destination blob in hot tier.
Start-AzStorageBlobCopy -SrcContainer $srcContainerName `
-SrcBlob $srcBlobName `
-DestContainer $destContainerName `
-DestBlob $destBlobName `
-StandardBlobTier Hot `
-Context $ctx
Pokud chcete objekt blob zkopírovat do teplejší vrstvy pomocí Azure CLI, zavolejte příkaz az storage blob copy start a zadejte cílovou úroveň. Nezapomeňte nahradit zástupné symboly v lomených závorkách vlastními hodnotami:
Pokud chcete zkopírovat objekt blob ze studené na horkou pomocí nástroje AzCopy, použijte příkaz azcopy copy a nastavte parametr na --block-blob-tierhot.
Poznámka:
Tento příklad uzavře argumenty cesty do jednoduchých uvozovek ('' ). Použití jednoduchých uvozovek ve všech příkazových prostředích s výjimkou prostředí Windows Command Shell (cmd.exe). Pokud používáte prostředí Windows Command Shell (cmd.exe), uzavřete argumenty cesty do dvojitých uvozovek ("") místo jednoduchých uvozovek ('' ).
Tento příklad vylučuje token SAS, protože předpokládá, že jste zadali autorizační přihlašovací údaje pomocí Microsoft Entra ID. Informace o způsobech zadání přihlašovacích údajů pro autorizaci pro službu úložiště najdete v článku Začínáme s nástrojem AzCopy .
AzCopy nepodporuje kopírování ze zdrojového objektu blob v archivní úrovni.
Operace kopírování je synchronní, takže když příkaz vrátí, zkopírují se všechny soubory.
Hromadné vrstvení
Pokud chcete přesunout objekty blob do jiné úrovně v kontejneru nebo složce, vytvořte výčet objektů blob a zavolejte operaci Nastavit úroveň objektů blob na každé z nich. Následující příklad ukazuje, jak provést tuto operaci:
Při přesouvání velkého počtu objektů blob na jinou úroveň použijte dávkovou operaci pro zajištění optimálního výkonu. Dávková operace odesílá službě více volání rozhraní API s jediným požadavkem. Mezi podoperace podporované operací Batch objektů blob patří odstranění objektu blob a nastavení úrovně objektu blob.
Pokud chcete změnit úroveň přístupu objektů blob pomocí dávkové operace, použijte jednu z klientských knihoven Azure Storage. Následující příklad kódu ukazuje, jak provést základní dávkovou operaci s klientskou knihovnou .NET:
static async Task BulkArchiveContainerContents(string accountName, string containerName)
{
string containerUri = string.Format("https://{0}.blob.core.windows.net/{1}",
accountName,
containerName);
// Get container client, using Azure AD credentials.
BlobUriBuilder containerUriBuilder = new BlobUriBuilder(new Uri(containerUri));
BlobContainerClient blobContainerClient = new BlobContainerClient(containerUriBuilder.ToUri(),
new DefaultAzureCredential());
// Get URIs for blobs in this container and add to stack.
var uris = new Stack<Uri>();
await foreach (var item in blobContainerClient.GetBlobsAsync())
{
uris.Push(blobContainerClient.GetBlobClient(item.Name).Uri);
}
// Get the blob batch client.
BlobBatchClient blobBatchClient = blobContainerClient.GetBlobBatchClient();
try
{
// Perform the bulk operation to archive blobs.
await blobBatchClient.SetBlobsAccessTierAsync(blobUris: uris, accessTier: AccessTier.Archive);
}
catch (RequestFailedException e)
{
Console.WriteLine(e.Message);
}
}
Podrobnou ukázkovou aplikaci, která ukazuje, jak změnit úrovně pomocí dávkové operace, najdete v tématu AzBulkSetBlobTier.