U kunt de toegangslaag van een blob op een van de volgende manieren instellen:
Door de standaardlaag voor onlinetoegang voor het opslagaccount in te stellen. Blobs in het account nemen deze toegangslaag over, tenzij u de instelling voor een afzonderlijke blob expliciet overschrijft.
Door de laag van een blob expliciet in te stellen bij uploaden. U kunt een blob maken in de dynamische, statische, koude of archieflaag.
Door de laag van een bestaande blob te wijzigen met de bewerking Blob-laag instellen. Normaal gesproken gebruikt u deze bewerking om van een dynamischere laag naar een koeler te gaan.
Door een blob te kopiëren met een kopieer-blobbewerking. Normaal gesproken gebruikt u deze bewerking om over te stappen van een koeler laag naar een dynamischere laag.
De standaardtoegangslaag voor een opslagaccount instellen
De standaardinstelling voor de toegangslaag voor een v2-opslagaccount voor algemeen gebruik bepaalt in welke onlinelaag een nieuwe blob standaard wordt gemaakt. U kunt de standaardtoegangslaag voor een v2-opslagaccount voor algemeen gebruik instellen op het moment dat u het account maakt of door de configuratie van een bestaand account bij te werken.
Wanneer u de standaardinstelling voor de toegangslaag voor een bestaand v2-opslagaccount voor algemeen gebruik wijzigt, is de wijziging van toepassing op alle blobs in het account waarvoor een toegangslaag niet expliciet is ingesteld. Het wijzigen van de standaardtoegangslaag kan gevolgen hebben voor facturering. Zie de instelling voor de standaardaccounttoegangslaag voor meer informatie.
Voer de volgende stappen uit om de standaardtoegangslaag voor een opslagaccount in te stellen tijdens het maken van een opslagaccount in Azure Portal:
Navigeer naar de pagina Opslagaccounts en selecteer de knop Maken .
Vul het tabblad Basisbeginselen in.
Stel op het tabblad Geavanceerd onder Blob Storage de toegangslaag in op Dynamisch, Statisch of Koud. De standaardinstelling is Dynamisch.
Selecteer Beoordelen en maken om uw instellingen te valideren en uw opslagaccount te maken.
Voer de volgende stappen uit om de standaardtoegangslaag voor een bestaand opslagaccount in Azure Portal bij te werken:
Navigeer naar het opslagaccount in Azure Portal.
Selecteer onder Instellingen de optie Configuratie.
Zoek de blobtoegangslaag (standaardinstelling) en selecteer Dynamisch, Statisch of Koud. De standaardinstelling is Dynamisch als u deze eigenschap nog niet eerder hebt ingesteld.
Sla uw wijzigingen op.
Als u de standaardinstelling voor toegangslagen voor een opslagaccount met PowerShell wilt wijzigen, roept u de opdracht Set-AzStorageAccount aan en geeft u de nieuwe standaardtoegangslaag op.
Als u de standaardinstelling voor toegangslagen voor een opslagaccount met PowerShell wilt wijzigen, roept u de opdracht Set-AzStorageAccount aan en geeft u de nieuwe standaardtoegangslaag op.
# Change the storage account tier to cool
az storage account update \
--resource-group <resource-group> \
--name <storage-account> \
--access-tier Cool
N.v.t.
De laag van een blob instellen bij uploaden
Wanneer u een blob uploadt naar Azure Storage, hebt u twee opties voor het instellen van de bloblaag bij uploaden:
U kunt expliciet de laag opgeven waarin de blob wordt gemaakt. Met deze instelling wordt de standaardtoegangslaag voor het opslagaccount overschreven. U kunt de laag voor een blob of set blobs instellen voor uploaden naar dynamisch, statisch, koud of archief.
U kunt een blob uploaden zonder een laag op te geven. In dit geval wordt de blob gemaakt in de standaardtoegangslaag die is opgegeven voor het opslagaccount (dynamisch of statisch).
Als u een nieuwe blob uploadt die gebruikmaakt van een versleutelingsbereik, kunt u de toegangslaag voor die blob niet wijzigen.
Als u een blob wilt maken in de dynamische, statische of koude laag, geeft u die laag op wanneer u de blob maakt. De toegangslaag die is opgegeven bij upload, overschrijft de standaardtoegangslaag voor het opslagaccount.
Voer de volgende stappen uit om een blob of set blobs te uploaden naar een specifieke laag vanuit Azure Portal:
Navigeer naar de doelcontainer.
Selecteer de knop Uploaden.
Selecteer het bestand of de bestanden die u wilt uploaden.
Vouw de sectie Geavanceerd uit en stel de toegangslaag in op Dynamisch of Statisch.
Selecteer de knop Uploaden.
Als u een blob of set blobs wilt uploaden naar een specifieke laag met PowerShell, roept u de opdracht Set-AzStorageBlobContent aan, zoals wordt weergegeven in het volgende voorbeeld. Vergeet niet om de tijdelijke aanduidingen tussen haakjes te vervangen door uw eigen waarden:
$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
Als u een blob wilt uploaden naar een specifieke laag met Azure CLI, roept u de opdracht az storage blob upload aan , zoals wordt weergegeven in het volgende voorbeeld. Vergeet niet om de tijdelijke aanduidingen tussen vierkante haken te vervangen door uw eigen waarden. Vervang de <tier> tijdelijke aanduiding door hot, coolof coldarchive.
Als u een set blobs wilt uploaden naar een specifieke laag met Azure CLI, roept u de opdracht az storage blob upload-batch aan, zoals wordt weergegeven in het volgende voorbeeld. Vergeet niet om de tijdelijke aanduidingen tussen vierkante haken te vervangen door uw eigen waarden. Vervang de <tier> tijdelijke aanduiding door hot, coolof coldarchive.
Als u een blob wilt uploaden naar een specifieke laag met behulp van AzCopy, gebruikt u de opdracht azcopy copy en stelt u de --block-blob-tier parameter hotin op , coolof archive.
Notitie
In dit voorbeeld worden padargumenten tussen enkele aanhalingstekens (''' ) geplaatst. Gebruik enkele aanhalingstekens in alle opdrachtshells, met uitzondering van de Windows Command Shell (cmd.exe). Als u een Windows Command Shell (cmd.exe) gebruikt, plaatst u padargumenten tussen dubbele aanhalingstekens ("") in plaats van enkele aanhalingstekens (''). In dit voorbeeld wordt het SAS-token uitgesloten omdat wordt ervan uitgegaan dat u autorisatiereferenties hebt opgegeven met behulp van Microsoft Entra-id. Zie het artikel Aan de slag met AzCopy voor meer informatie over de manieren waarop u autorisatiereferenties kunt opgeven voor de opslagservice.
Als u een set blobs wilt uploaden naar een specifieke laag met behulp van AzCopy, raadpleegt u de lokale map of de inhoud van de lokale map en voegt u deze vervolgens toe --recursive=true aan de opdracht.
Opslagaccounts hebben een standaardinstelling voor toegangslagen die aangeeft in welke onlinelaag een nieuwe blob wordt gemaakt. De standaardinstelling voor de toegangslaag kan worden ingesteld op dynamisch of statisch. Het gedrag van deze instelling verschilt enigszins, afhankelijk van het type opslagaccount:
De standaardtoegangslaag voor een nieuw v2-opslagaccount voor algemeen gebruik is standaard ingesteld op de dynamische laag. U kunt de instelling voor de standaardtoegangslaag wijzigen wanneer u een opslagaccount maakt of nadat het is gemaakt.
Wanneer u een verouderd Blob Storage-account maakt, moet u de instelling voor de standaardtoegangslaag opgeven als dynamisch of statisch wanneer u het opslagaccount maakt. U kunt de standaardinstelling voor de toegangslaag voor het opslagaccount wijzigen nadat het is gemaakt.
Een blob die niet over een expliciet toegewezen laag beschikt, bepaalt de laag van de laag van de standaardaccounttoegangslaag. U kunt bepalen of de toegangslaag van een blob wordt afgeleid met behulp van Azure Portal, PowerShell of Azure CLI.
Als de toegangslaag van een blob wordt afgeleid van de instelling voor de standaardaccounttoegangslaag, wordt de toegangslaag weergegeven als Dynamisch (afgeleid), Statisch (afgeleid) of Koud (afgeleid).
Als u de toegangslaag van een blob wilt bepalen en wilt weten of deze wordt afgeleid uit Azure PowerShell, haalt u de blob op en controleert u vervolgens de eigenschappen AccessTier en 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
Als u de toegangslaag van een blob wilt bepalen en wilt weten of deze is afgeleid van Azure CLI, haalt u de blob op en controleert u vervolgens de blobTier - en blobTierInferred-eigenschappen .
Gebruik PowerShell, Azure CLI, AzCopy v10 of een van de Azure Storage-clientbibliotheken om een blob naar een andere laag te verplaatsen.
De laag van een blob wijzigen
Wanneer u de laag van een blob wijzigt, verplaatst u die blob en alle bijbehorende gegevens naar de doellaag door de bewerking Blob-laag instellen aan te roepen (rechtstreeks of via een levenscyclusbeheerbeleid ), of met behulp van de opdracht azcopy set-properties met AzCopy. Deze optie is doorgaans het beste wanneer u de laag van een blob wijzigt van een dynamischere laag in een koeler laag.
Tip
U kunt een opslagtaak gebruiken om de toegangslaag van blobs op schaal te wijzigen in meerdere opslagaccounts op basis van een set voorwaarden die u definieert. Een opslagtaak is een resource die beschikbaar is in Azure Storage Actions; een serverloos framework dat u kunt gebruiken om algemene gegevensbewerkingen uit te voeren op miljoenen objecten in meerdere opslagaccounts. Zie Wat is Azure Storage Actions?voor meer informatie.
Voer de volgende stappen uit om de laag van een blob te wijzigen in een koeler laag in Azure Portal:
Navigeer naar de blob waarvoor u de laag wilt wijzigen.
Selecteer de blob en selecteer vervolgens de knop Laag wijzigen.
Selecteer in het dialoogvenster Laag wijzigen de doellaag.
Selecteer de knop Opslaan.
Als u de laag van een blob wilt wijzigen in een koelere laag met PowerShell, gebruikt u de blobClient-eigenschap van de blob om een .NET-verwijzing naar de blob te retourneren en roept u vervolgens de methode SetAccessTier aan op die verwijzing. Vergeet niet om tijdelijke aanduidingen tussen punthaken te vervangen door uw eigen waarden:
# 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")
Als u de laag van een blob wilt wijzigen in een koeler laag met Azure CLI, roept u de opdracht az storage blob set-tier aan. Vergeet niet om tijdelijke aanduidingen tussen punthaken te vervangen door uw eigen waarden:
Als u de laag van een blob wilt wijzigen in een koeler laag, gebruikt u de opdracht azcopy set-properties en stelt u de -block-blob-tier parameter in.
Belangrijk
Het gebruik van AzCopy om de toegangslaag van een blob te wijzigen, bevindt zich momenteel in PREVIEW.
Raadpleeg de Aanvullende voorwaarden voor Microsoft Azure-previews voor juridische voorwaarden die van toepassing zijn op Azure-functies die in bèta of preview zijn of die anders nog niet algemeen beschikbaar zijn.
Notitie
In dit voorbeeld worden padargumenten tussen enkele aanhalingstekens (''' ) geplaatst. Gebruik enkele aanhalingstekens in alle opdrachtshells, met uitzondering van de Windows Command Shell (cmd.exe). Als u een Windows Command Shell (cmd.exe) gebruikt, plaatst u padargumenten tussen dubbele aanhalingstekens ("") in plaats van enkele aanhalingstekens (''). In dit voorbeeld wordt het SAS-token uitgesloten omdat wordt ervan uitgegaan dat u autorisatiereferenties hebt opgegeven met behulp van Microsoft Entra-id. Zie het artikel Aan de slag met AzCopy voor meer informatie over de manieren waarop u autorisatiereferenties kunt opgeven voor de opslagservice.
Als u de toegangslaag voor alle blobs in een virtuele map wilt wijzigen, raadpleegt u de naam van de virtuele map in plaats van de blobnaam en voegt u deze vervolgens toe aan --recursive=true de opdracht.
Roep de blobbewerking kopiëren aan om een blob van de ene laag naar de andere te kopiëren. Wanneer u een blob naar een andere laag kopieert, verplaatst u die blob en alle bijbehorende gegevens naar de doellaag. De bron-blob blijft in de oorspronkelijke laag en er wordt een nieuwe blob gemaakt in de doellaag. Het aanroepen van copy-blob wordt aanbevolen voor de meeste scenario's waarin u een blob verplaatst naar een warmere laag of een blob reactiveren vanuit de archieflaag.
Als u een blob wilt kopiëren van statisch naar dynamisch met PowerShell, roept u de opdracht Start-AzStorageBlobCopy aan en geeft u de doellaag op. Vergeet niet om tijdelijke aanduidingen tussen punthaken te vervangen door uw eigen waarden:
# 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
Als u een blob wilt kopiëren naar een warmere laag met Azure CLI, roept u de opdracht az storage blob copy start aan en geeft u de doellaag op. Vergeet niet om tijdelijke aanduidingen tussen punthaken te vervangen door uw eigen waarden:
Als u een blob wilt kopiëren van statisch naar dynamisch met AzCopy, gebruikt u de opdracht azcopy copy en stelt u de --block-blob-tier parameter in op hot.
Notitie
In dit voorbeeld worden padargumenten tussen enkele aanhalingstekens (''' ) geplaatst. Gebruik enkele aanhalingstekens in alle opdrachtshells, met uitzondering van de Windows Command Shell (cmd.exe). Als u een Windows Command Shell (cmd.exe) gebruikt, plaatst u padargumenten tussen dubbele aanhalingstekens ("") in plaats van enkele aanhalingstekens ('').
In dit voorbeeld wordt het SAS-token uitgesloten omdat wordt ervan uitgegaan dat u autorisatiereferenties hebt opgegeven met behulp van Microsoft Entra-id. Zie het artikel Aan de slag met AzCopy voor meer informatie over de manieren waarop u autorisatiereferenties kunt opgeven voor de opslagservice.
AzCopy biedt geen ondersteuning voor kopiëren vanuit een bron-blob in de archieflaag.
De kopieerbewerking is synchroon, dus wanneer de opdracht wordt geretourneerd, worden alle bestanden gekopieerd.
Bulkopslaglagen
Als u blobs wilt verplaatsen naar een andere laag in een container of map, inventariseert u blobs en roept u de bewerking Blob-laag instellen aan op elke laag. In het volgende voorbeeld ziet u hoe u deze bewerking uitvoert:
Wanneer u een groot aantal blobs naar een andere laag verplaatst, gebruikt u een batchbewerking voor optimale prestaties. Een batchbewerking verzendt meerdere API-aanroepen naar de service met één aanvraag. De suboperations die worden ondersteund door de Blob Batch-bewerking zijn Onder andere Blob verwijderen en Blob-laag instellen.
Als u de toegangslaag van blobs met een batchbewerking wilt wijzigen, gebruikt u een van de Azure Storage-clientbibliotheken. In het volgende codevoorbeeld ziet u hoe u een eenvoudige batchbewerking uitvoert met de .NET-clientbibliotheek:
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);
}
}