Ustawianie lub zmienianie warstwy dostępu blokowego obiektu blob za pomocą platformy .NET
W tym artykule pokazano, jak ustawić lub zmienić warstwę dostępu dla blokowego obiektu blob przy użyciu biblioteki klienta usługi Azure Storage dla platformy .NET.
Wymagania wstępne
- Subskrypcja platformy Azure — utwórz jedną bezpłatnie
- Konto usługi Azure Storage — tworzenie konta magazynu
- Najnowszy zestaw .NET SDK dla systemu operacyjnego. Pamiętaj, aby pobrać zestaw SDK, a nie środowisko uruchomieniowe.
Konfigurowanie środowiska
Jeśli nie masz istniejącego projektu, w tej sekcji pokazano, jak skonfigurować projekt do pracy z biblioteką klienta usługi Azure Blob Storage dla platformy .NET. Kroki obejmują instalację pakietu, dodawanie using
dyrektyw i tworzenie autoryzowanego obiektu klienta. Aby uzyskać szczegółowe informacje, zobacz Rozpoczynanie pracy z usługami Azure Blob Storage i .NET.
Instalowanie pakietów
Z katalogu projektu zainstaluj pakiety dla bibliotek klienta usługi Azure Blob Storage i tożsamości platformy Azure przy użyciu dotnet add package
polecenia . Pakiet Azure.Identity jest wymagany w przypadku połączeń bez hasła z usługami platformy Azure.
dotnet add package Azure.Storage.Blobs
dotnet add package Azure.Identity
Dodawanie using
dyrektyw
Dodaj te using
dyrektywy na początku pliku kodu:
using Azure.Identity;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using Azure.Storage.Blobs.Specialized;
Niektóre przykłady kodu w tym artykule mogą wymagać dodatkowych using
dyrektyw.
Tworzenie obiektu klienta
Aby połączyć aplikację z usługą Blob Storage, utwórz wystąpienie klasy BlobServiceClient. W poniższym przykładzie pokazano, jak utworzyć obiekt klienta przy użyciu DefaultAzureCredential
autoryzacji:
public BlobServiceClient GetBlobServiceClient(string accountName)
{
BlobServiceClient client = new(
new Uri($"https://{accountName}.blob.core.windows.net"),
new DefaultAzureCredential());
return client;
}
Możesz zarejestrować klienta usługi na potrzeby wstrzykiwania zależności w aplikacji .NET.
Można również tworzyć obiekty klienta dla określonych kontenerów lub obiektów blob. Aby dowiedzieć się więcej na temat tworzenia obiektów klienta i zarządzania nimi, zobacz Tworzenie obiektów klienta korzystających z zasobów danych i zarządzanie nimi.
Autoryzacja
Mechanizm autoryzacji musi mieć niezbędne uprawnienia do ustawiania warstwy dostępu obiektu blob. Aby uzyskać autoryzację przy użyciu identyfikatora Entra firmy Microsoft (zalecane), potrzebujesz wbudowanej kontroli dostępu opartej na rolach platformy Azure współautora danych obiektów blob usługi Storage lub nowszego. Aby dowiedzieć się więcej, zobacz wskazówki dotyczące autoryzacji dotyczące ustawiania warstwy obiektu blob.
Informacje o warstwach dostępu blokowych obiektów blob
Aby zarządzać kosztami magazynu, warto zorganizować dane na podstawie tego, jak często jest uzyskiwany dostęp i jak długo należy je przechowywać. Usługa Azure Storage oferuje różne warstwy dostępu, dzięki czemu można przechowywać dane obiektów blob w najbardziej ekonomiczny sposób na podstawie sposobu ich użycia.
Warstwy dostępu dla danych obiektów blob
Warstwy dostępu usługi Azure Storage obejmują:
- Warstwa Gorąca — warstwa online zoptymalizowana pod kątem przechowywania danych, które są często używane lub modyfikowane. Warstwa Gorąca ma najwyższe koszty magazynowania, ale najniższe koszty dostępu.
- Warstwa Chłodna — warstwa online zoptymalizowana pod kątem przechowywania danych, które są rzadko używane lub modyfikowane. Dane w warstwie Chłodna powinny być przechowywane przez co najmniej 30 dni. Warstwa Chłodna ma niższe koszty magazynowania i wyższe koszty dostępu w porównaniu z warstwą Gorąca.
- Warstwa zimna — warstwa online zoptymalizowana pod kątem przechowywania danych, do których dostęp jest rzadko używany lub modyfikowany. Dane w warstwie Zimna powinny być przechowywane przez co najmniej 90 dni. Warstwa dostępu Zimna ma niższe koszty magazynowania i wyższe koszty dostępu w porównaniu do warstwy Chłodna.
- Warstwa Archiwum — warstwa offline zoptymalizowana pod kątem przechowywania rzadko używanych danych i ma elastyczne wymagania dotyczące opóźnień w godzinach. Dane w warstwie Archiwum powinny być przechowywane przez co najmniej 180 dni.
Aby dowiedzieć się więcej na temat warstw dostępu, zobacz Warstwy dostępu dla danych obiektów blob.
Chociaż obiekt blob znajduje się w warstwie dostępu Archiwum, jest uważany za offline i nie można go odczytać ani zmodyfikować. Aby odczytywać lub modyfikować dane w zarchiwizowanym obiekcie blob, należy najpierw przywrócić obiekt blob do warstwy online. Aby dowiedzieć się więcej na temat ponownego wypełniania obiektu blob z warstwy Archiwum do warstwy online, zobacz Ponowne wypełnianie obiektów blob z warstwy Archiwum.
Ograniczenia
Ustawienie warstwy dostępu jest dozwolone tylko w blokowych obiektach blob. Aby dowiedzieć się więcej na temat ograniczeń dotyczących ustawiania warstwy dostępu blokowego obiektu blob, zobacz Ustawianie warstwy obiektu blob (interfejs API REST).
Uwaga
Aby ustawić warstwę dostępu na Cold
platformę .NET, należy użyć minimalnej wersji biblioteki klienta 12.15.0.
Ustawianie warstwy dostępu obiektu blob podczas przekazywania
Warstwę dostępu obiektu blob można ustawić podczas przekazywania przy użyciu klasy BlobUploadOptions . W poniższym przykładzie kodu pokazano, jak ustawić warstwę dostępu podczas przekazywania obiektu blob:
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();
}
Aby dowiedzieć się więcej na temat przekazywania obiektu blob przy użyciu platformy .NET, zobacz Przekazywanie obiektu blob przy użyciu platformy .NET.
Zmienianie warstwy dostępu dla istniejącego blokowego obiektu blob
Warstwę dostępu istniejącego obiektu blob blokowego można zmienić przy użyciu jednej z następujących funkcji:
Poniższy przykład kodu pokazuje, jak zmienić warstwę dostępu dla istniejącego obiektu blob na Cool
:
public static async Task ChangeBlobAccessTierAsync(
BlobClient blobClient)
{
// Change the access tier of the blob to cool
await blobClient.SetAccessTierAsync(AccessTier.Cool);
}
Jeśli przywracasz zarchiwizowany obiekt blob, możesz opcjonalnie ustawić rehydratePriority
parametr na High
lub Standard
.
Kopiowanie obiektu blob do innej warstwy dostępu
Warstwę dostępu istniejącego bloku obiektu blob można zmienić, określając warstwę dostępu w ramach operacji kopiowania. Aby zmienić warstwę dostępu podczas operacji kopiowania, użyj klasy BlobCopyFromUriOptions i określ właściwość AccessTier . Jeśli przywracasz obiekt blob z warstwy Archiwum przy użyciu operacji kopiowania, możesz opcjonalnie ustawić właściwość RehydratePriority na High
wartość lub Standard
.
Poniższy przykład kodu przedstawia sposób ponownego wypełniania zarchiwizowanego obiektu blob do Hot
warstwy przy użyciu operacji kopiowania:
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();
}
Aby dowiedzieć się więcej na temat kopiowania obiektu blob za pomocą platformy .NET, zobacz Kopiowanie obiektu blob przy użyciu platformy .NET.
Zasoby
Aby dowiedzieć się więcej na temat ustawiania warstw dostępu przy użyciu biblioteki klienta usługi Azure Blob Storage dla platformy .NET, zobacz następujące zasoby.
Operacje interfejsu API REST
Zestaw Azure SDK dla platformy .NET zawiera biblioteki, które są oparte na interfejsie API REST platformy Azure, co umożliwia interakcję z operacjami interfejsu API REST za pomocą znanych paradygmatów platformy .NET. Metody biblioteki klienta do ustawiania warstw dostępu używają następującej operacji interfejsu API REST:
- Ustawianie warstwy obiektów blob (interfejs API REST)
Zasoby biblioteki klienta
Przykłady kodu
Zobacz też
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla