Share via


Festlegen oder Ändern der Zugriffsebene eines Blockblobs mit .NET

In diesem Artikel wird beschrieben, wie die Zugriffsebene eines Blockblobs mithilfe der Azure Storage-Clientbibliothek für .NET festgelegt oder geändert wird.

Voraussetzungen

  • In diesem Artikel wird davon ausgegangen, dass Sie bereits ein Projekt für die Arbeit mit der Azure Blob Storage-Clientbibliothek für .NET eingerichtet haben. Informationen zum Einrichten Ihres Projekts, einschließlich der Paketinstallation, dem Hinzufügen von using-Anweisungen und dem Erstellen eines autorisierten Clientobjekts, finden Sie unter Erste Schritte mit Azure Blob Storage und .NET.
  • Der Autorisierungsmechanismus muss über Berechtigungen zum Festlegen der Zugriffsebene des Blobs verfügen. Weitere Informationen finden Sie im Autorisierungsleitfaden für die folgenden REST-API-Vorgänge:

Informationen zu Zugriffsebenen für Blockblobs

Um die Kosten für die Speicheranforderungen im Blick zu behalten, kann es hilfreich sein, die Daten anhand ihrer Zugriffshäufigkeit und Aufbewahrungsdauer zu organisieren. Azure Storage weist verschiedene Zugriffsebenen auf, sodass Sie Blobdaten basierend auf ihrer Verwendung auf die kostengünstigste Weise speichern können.

Zugriffsebenen für Blobdaten

Folgende Azure Storage-Zugriffsebenen stehen zur Verfügung:

  • Heiße Zugriffsebene: Onlineebene, die für die Speicherung von Daten optimiert ist, auf die häufig zugegriffen wird oder die häufig geändert werden. Die heiße Ebene hat die höchsten Speicherkosten, aber auch die niedrigsten Zugriffskosten.
  • Kalte Zugriffsebene: Onlineebene, die für die Speicherung von Daten optimiert ist, auf die nicht häufig zugegriffen wird oder die nicht häufig geändert werden. Daten auf der kalten Ebene sollten für mindestens 30 Tage gespeichert werden. Für die kalte Ebene fallen im Vergleich zur heißen Ebene niedrigere Speicherkosten, aber höhere Zugriffskosten an.
  • Ebene „Cold“ – Eine Onlineebene, die für die Speicherung von Daten optimiert ist, auf die nur selten zugegriffen wird oder die selten geändert werden. Daten auf der Ebene „Cold“ sollten für mindestens 90 Tage gespeichert werden. Für die Ebene „Cold“ fallen im Vergleich zur kalten Ebene niedrigere Speicherkosten und höhere Zugriffskosten an.
  • Archivebene – Eine Offline-Dienstebene, welche für die Speicherung von Daten optimiert ist, auf die nur selten zugegriffen wird und die flexible Wartezeitanforderungen in der Größenordnung von Stunden aufweist. Daten auf Archivzugriffsebene müssen mindestens 180 Tage lang gespeichert werden.

Weitere Informationen zu Zugriffsebenen finden Sie unter Zugriffsebenen für Blobdaten.

Während ein Blob sich auf der Archivebene befindet, wird es als offline betrachtet und kann nicht gelesen oder geändert werden. Wenn Daten in einem archivierten Blob gelesen oder geändert werden sollen, müssen Sie das Blob zuerst auf einer Onlineebene aktivieren. Weitere Informationen zum Aktivieren eines Blobs aus der Archivebene auf einer Onlineebene finden Sie unter Aktivierung von Blobs aus der Archivebene.

Beschränkungen

Das Festlegen der Zugriffsebene ist nur für Blockblobs gestattet. Weitere Informationen zu Einschränkungen beim Festlegen der Zugriffsebene eines Blockblobs finden Sie unter Festlegen der Blobebene (REST-API).

Hinweis

Um mithilfe von .NET die Zugriffsebene auf Cold festzulegen, müssen Sie mindestens die Version 12.15.0 der Clientbibliothek verwenden.

Festlegen der Zugriffsebene eines Blobs während dem Upload

Beim Upload können Sie die Zugriffsebene eines Blobs festlegen, indem Sie die Klasse BlobUploadOptions verwenden. Im folgenden Codebeispiel wird gezeigt, wie die Zugriffsebene beim Upload eines Blobs festgelegt wird:

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();
}

Weitere Informationen zum Hochladen eines Blobs mit .NET finden Sie unter Hochladen eines Blobs mit .NET.

Ändern der Zugriffsebene für einen vorhandenen Blockblob

Sie können die Zugriffsebene eines vorhandenen Blockblobs ändern, indem Sie eine der folgenden Funktionen verwenden:

Das folgende Codebeispiel zeigt, wie Sie die Zugriffsebene für einen vorhandenen Blob zu Cool ändern:

public static async Task ChangeBlobAccessTierAsync(
    BlobClient blobClient)
{
    // Change the access tier of the blob to cool
    await blobClient.SetAccessTierAsync(AccessTier.Cool);
}

Wenn Sie einen archivierten Blob aktivieren, können Sie optional den Parameter rehydratePriority auf High oder Standard festlegen.

Kopieren eines Blobs in eine andere Zugriffsebene

Sie können die Zugriffsebene eines vorhandenen Blockblobs ändern, indem Sie im Rahmen eines Kopiervorgangs eine Zugriffsebene angeben. Um die Zugriffsebene während eines Kopiervorgangs zu ändern, verwenden Sie die BlobCopyFromUriOptions-Klasse, und geben Sie die Eigenschaft AccessTier an. Wenn Sie einen Blob mithilfe eines Kopiervorgangs über die Archivebene aktivieren, können Sie optional die Eigenschaft RehydratePriority auf High oder Standard festlegen.

Im folgenden Codebeispiel wird gezeigt, wie Sie einen archivierten Blob mithilfe eines Kopiervorgangs in die Ebene Hot aktivieren:

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();
}

Weitere Informationen zum Kopieren eines Blobs mit .NET finden Sie unter Kopieren eines Blobs mit .NET.

Ressourcen

Weitere Informationen zum Festlegen von Zugriffsebenen mithilfe der Azure Blob Storage-Clientbibliothek für .NET finden Sie in den folgenden Ressourcen.

REST-API-Vorgänge

Das Azure SDK für .NET enthält Bibliotheken, die auf der zugrunde liegenden Azure-REST-API basieren, und ermöglicht Ihnen dadurch die Interaktion mit REST-API-Vorgängen über vertraute .NET-Paradigmen. Die Methoden der Clientbibliothek zum Festlegen von Zugriffsebenen verwenden den folgenden REST-API-Vorgang:

Ressourcen zur Clientbibliothek

Codebeispiele

Siehe auch