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 za pomocą 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 do stronicowego obiektu blob.

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

Dowolny obiekt blob można dzierżawić w celu uzyskania wyłącznego dostępu do zapisu. Gdy obiekt blob jest dzierżawiony, tylko wywołania zawierające 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ć maksymalnie 50 000 bloków. Każdy blok w bloku obiektu blob może mieć inny rozmiar, maksymalnie maksymalny rozmiar dozwolony dla używanej wersji usługi. Aby utworzyć lub zmodyfikować blokowy obiekt blob, napisz zestaw bloków za pomocą operacji Put Block , a następnie zatwierdź bloki do obiektu blob za pomocą operacji Umieszczanie listy bloków .

Obiekty blob, które są mniejsze niż określony rozmiar (określony przez wersję usługi) można przekazać w całości za pomocą jednej operacji zapisu za pośrednictwem obiektu Blob Put.

W poniższej tabeli opisano maksymalne rozmiary bloków i obiektów blob dozwolone przez wersję usługi.

Wersja usługi Maksymalny rozmiar bloku (za pomocą pozycji Umieść blok) Maksymalny rozmiar obiektu blob (za pośrednictwem pozycji Lista bloków) Maksymalny rozmiar obiektu blob za pośrednictwem pojedynczej operacji zapisu (za pośrednictwem polecenia 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 zapoznawcza)
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

Storage klientów domyślnie do 128 miB maksymalnego przekazywania pojedynczego obiektu blob, ustawiana 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 na żądanie można ustawić 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, dopóki nie zostaną one specjalnie zatwierdzone lub odrzucone. Może istnieć maksymalnie 100 000 niezatwierdzonych bloków. Pisanie bloku nie aktualizuje czasu ostatniej modyfikacji istniejącego obiektu blob.

Blokowe obiekty blob obejmują funkcje ułatwiające zarządzanie dużymi plikami za pośrednictwem sieci. Za pomocą blokowego obiektu blob można przekazać wiele bloków równolegle, aby skrócić czas 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 przekazać w dowolnej kolejności i określić 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. Przed ich odrzuceniem należy zatwierdzić bloki w obiekcie blob tydzień. 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 bloku lub bloków, które uległy zmianie, możesz zatwierdzić nową wersję obiektu blob, zatwierdzając nowe bloki przy użyciu istniejących bloków, które chcesz zachować 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 jakikolwiek 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ówne długości. W przypadku korzystania z kodowania base-64 ciąg zakodowany wstępnie musi mieć 64 bajty lub mniej. Wartości identyfikatorów bloków mogą być zduplikowane w różnych obiektach blob.

Jeśli piszesz 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 zawierających 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 po utworzeniu nowego obiektu 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, zainicjujesz 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 strony 512 bajtów. Zapis w stronicowym obiekcie 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 maszyny wirtualnej platformy Azure są obsługiwane przez stronicowe obiekty blob. Platforma Azure oferuje dwa typy trwałego magazynu dysków: premium i standard. Premium magazynu dla stronicowych obiektów blob jest przeznaczony 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ę Premium dysków półprzewodnikowych (SSD) w artykule Wybieranie typu dysku dla maszyn wirtualnych IaaS. Aby uzyskać informacje na temat celów skalowalności magazynu w warstwie Premium dla stronicowych obiektów blob, zobacz Azure Storage Skalowalność i cele wydajności.

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łnialnych obiektach blob może mieć inny rozmiar, maksymalnie 4 miB, a uzupełnialne obiekty blob mogą zawierać maksymalnie 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ż