Udostępnij za pośrednictwem


Opis blokowych obiektów blob, uzupełnialnych obiektów blob i stronicowych obiektów blob

Usługa magazynu oferuje trzy typy obiektów blob, blokowych obiektów blob, uzupełnialnych obiektów blob i stronicowych obiektów blob. Typ obiektu blob określa się podczas tworzenia obiektu blob. Po utworzeniu obiektu blob nie można zmienić jego typu i można go zaktualizować tylko przy użyciu operacji odpowiednich dla tego typu obiektu blob, tj. zapisywania bloku lub listy bloków do blokowego obiektu blob, dołączania bloków do uzupełnialnych obiektów blob i zapisywania stron w stronicowym obiekcie blob.

Wszystkie obiekty blob natychmiast odzwierciedlają zatwierdzone zmiany. Każda wersja obiektu blob ma unikatowy tag o nazwie ETag, którego można używać z warunkami dostępu, aby zapewnić zmianę tylko określonego wystąpienia obiektu blob.

Dowolny obiekt blob można dzierżawić na potrzeby wyłącznego dostępu do zapisu. Gdy obiekt blob jest dzierżawiony, tylko wywołania, które zawierają bieżący identyfikator dzierżawy, mogą modyfikować obiekt blob lub (w przypadku blokowych obiektów blob) jego bloki.

Dowolny obiekt blob można zduplikować w migawce. Aby uzyskać informacje o migawkach, zobacz Tworzenie migawki obiektu blob.

Uwaga

Obiekty blob w emulatorze usługi Azure Storage są ograniczone do maksymalnego rozmiaru 2 GiB.

Informacje o blokowych obiektach blob

Blokowe obiekty blob są zoptymalizowane pod kątem wydajnego przekazywania dużych ilości danych. Blokowe obiekty blob składają się z bloków, z których każdy jest identyfikowany przez identyfikator bloku. Blokowy obiekt blob może zawierać do 50 000 bloków. Każdy blok w blokowym obiekcie blob może mieć inny rozmiar, do maksymalnego rozmiaru dozwolonego dla używanej wersji usługi. Aby utworzyć lub zmodyfikować blokowy obiekt blob, napisz zestaw bloków za pośrednictwem operacji Put Block , a następnie zatwierdź bloki do obiektu blob za pomocą operacji Umieść listę bloków .

Obiekty blob o mniejszym rozmiarze (określonym przez wersję usługi) mogą być przekazywane w całości za pomocą jednej operacji zapisu za pośrednictwem funkcji Put Blob.

W poniższej tabeli opisano maksymalny rozmiar bloków i obiektów blob dozwolonych przez wersję usługi.

Wersja usługi Maksymalny rozmiar bloku (za pośrednictwem bloku Put) Maksymalny rozmiar obiektu blob (za pośrednictwem listy umieszczania bloków) Maksymalny rozmiar obiektu blob za pośrednictwem operacji pojedynczego zapisu (za pomocą funkcji Put Blob)
Wersja 2019-12-12 lub nowsza 4000 MiB Około 190,7 TiB (4000 bloków MiB X 50 000) 5000 MiB
Wersja 2016-05-31 do wersji 2019-07-07 100 MiB Około 4,75 TiB (100 bloków MiB X 50 000) 256 MiB
Wersje wcześniejsze niż 2016-05-31 4 MiB Około 195 GiB (4 bloki MiB X 50,000) 64 MiB

Klienci magazynu domyślnie używają maksymalnego przekazywania pojedynczego obiektu blob o wartości 128 MiB, ustawianego w bibliotece klienta usługi Azure Storage dla platformy .NET w wersji 11 przy użyciu właściwości SingleBlobUploadThresholdInBytes obiektu BlobRequestOptions . Gdy przekazywanie blokowych obiektów blob jest większe niż wartość tej właściwości, klienci magazynu dzielą plik na bloki. Liczbę wątków używanych do równoległego przekazywania bloków można ustawić dla poszczególnych żądań przy użyciu właściwości ParallelOperationThreadCount obiektu BlobRequestOptions .

Po przekazaniu bloku do obiektu blob na koncie magazynu jest on skojarzony z określonym blokowym obiektem blob, ale nie staje się częścią obiektu blob do momentu zatwierdzenia listy bloków zawierających identyfikator nowego bloku. Nowe bloki pozostają w stanie niezatwierdzonym do momentu ich zatwierdzenia lub odrzucenia. Może istnieć maksymalnie 100 000 niezatwierdzonych bloków. Zapisywanie bloku nie powoduje zaktualizowania czasu ostatniej modyfikacji istniejącego obiektu blob.

Blokowe obiekty blob obejmują funkcje, które ułatwiają zarządzanie dużymi plikami za pośrednictwem sieci. Blokowy obiekt blob umożliwia równoległe przekazywanie wielu bloków w celu skrócenia czasu przekazywania. Każdy blok może zawierać skrót MD5 w celu zweryfikowania transferu, dzięki czemu można śledzić postęp przekazywania i ponownie wysyłać bloki zgodnie z potrzebami. Bloki można przekazywać w dowolnej kolejności i określać ich sekwencję w ostatnim kroku zobowiązania listy bloków. Możesz również przekazać nowy blok, aby zastąpić istniejący niezatwierdzony blok tego samego identyfikatora bloku. Bloki do obiektu blob należy zatwierdzić tydzień, zanim zostaną odrzucone. Wszystkie niezatwierdzone bloki są również odrzucane, gdy wystąpi operacja zobowiązania listy bloków, ale nie zawiera ich.

Istniejący blokowy obiekt blob można zmodyfikować, wstawiając, zastępując lub usuwając istniejące bloki. Po przekazaniu zmienionych bloków lub bloków można zatwierdzić nową wersję obiektu blob, zatwierdzając nowe bloki przy użyciu istniejących bloków, które mają być nadal używane przy użyciu pojedynczej operacji zatwierdzania. Aby wstawić ten sam zakres bajtów w dwóch różnych lokalizacjach zatwierdzonego obiektu blob, możesz zatwierdzić ten sam blok w dwóch miejscach w ramach tej samej operacji zatwierdzania. W przypadku każdej operacji zatwierdzania, jeśli żaden blok nie zostanie znaleziony, cała operacja zobowiązania zakończy się niepowodzeniem z powodu błędu, a obiekt blob nie zostanie zmodyfikowany. Każde zobowiązanie blokowe zastępuje istniejące właściwości i metadane obiektu blob oraz odrzuca wszystkie niezatwierdzone bloki.

Identyfikatory bloków to ciągi o równej długości w obiekcie blob. Blokowy kod klienta zwykle używa kodowania base-64 do normalizacji ciągów na równej długości. W przypadku korzystania z kodowania base-64 ciąg wstępnie zakodowany musi mieć 64 bajty lub mniej. Wartości identyfikatorów bloków mogą być duplikowane w różnych obiektach blob.

Jeśli napiszesz blok dla obiektu blob, który nie istnieje, zostanie utworzony nowy blokowy obiekt blob o długości zero bajtów. Ten obiekt blob będzie wyświetlany na listach obiektów blob, które zawierają niezatwierdzone obiekty blob. Jeśli nie zatwierdzisz żadnego bloku dla tego obiektu blob, zostanie on odrzucony tydzień po ostatnim pomyślnym przekazaniu bloku. Wszystkie niezatwierdzone bloki są również odrzucane, gdy zostanie utworzony nowy obiekt blob o tej samej nazwie przy użyciu jednego kroku (zamiast dwuetapowego procesu przekazywania i zatwierdzania).

Informacje o stronicowych obiektach blob

Stronicowe obiekty blob to kolekcja 512-bajtowych stron zoptymalizowanych pod kątem losowych operacji odczytu i zapisu. Aby utworzyć stronicowy obiekt blob, zainicjuj stronicowy obiekt blob i określ maksymalny rozmiar stronicowego obiektu blob. Aby dodać lub zaktualizować zawartość stronicowego obiektu blob, należy napisać stronę lub strony, określając przesunięcie i zakres, który jest wyrównany do granic stron 512-bajtowych. Zapis do stronicowego obiektu blob może zastąpić tylko jedną stronę, niektóre strony lub maksymalnie 4 MiB stronicowego obiektu blob. Operacje zapisu w stronicowych obiektach blob są wykonywane w miejscu i są natychmiast zatwierdzane w obiekcie blob. Maksymalny rozmiar stronicowego obiektu blob to 8 TiB.

Dyski maszyn wirtualnych platformy Azure są wspierane przez stronicowe obiekty blob. Platforma Azure oferuje dwa typy trwałego magazynu dysków: Premium i Standard. Usługa Premium Storage dla stronicowych obiektów blob jest przeznaczona dla obciążeń maszyn wirtualnych platformy Azure, które wymagają spójnej wysokiej wydajności i małych opóźnień. Aby uzyskać szczegółowe informacje, zobacz sekcję Dyski półprzewodnikowe (SSD) w warstwie Premium w artykule Select a disk type for IaaS VMs (Wybieranie typu dysku dla maszyn wirtualnych IaaS). Aby uzyskać informacje na temat celów skalowalności usługi Premium Storage dla stronicowych obiektów blob, zobacz Cele skalowalności i wydajności usługi Azure Storage.

Informacje o uzupełnialnych obiektach blob

Uzupełnialne obiekty blob składają się z bloków i są zoptymalizowane pod kątem operacji dołączania. Podczas modyfikowania uzupełnialnych obiektów blob bloki są dodawane tylko na końcu obiektu blob za pośrednictwem operacji Dołączanie bloku . Aktualizowanie lub usuwanie istniejących bloków nie jest obsługiwane. W przeciwieństwie do blokowego obiektu blob obiekt blob dołączania nie ujawnia identyfikatorów bloków.

Każdy blok w uzupełnianym obiekcie blob może mieć inny rozmiar, maksymalnie 4 MiB, a uzupełnialne obiekty blob mogą zawierać do 50 000 bloków. Maksymalny rozmiar uzupełnialnych obiektów blob jest zatem nieco większy niż 195 GiB (4 bloki MiB X 50 000).

Zobacz też