Udostępnij za pośrednictwem


Nazewnictwo i odwoływanie się do kontenerów, obiektów blob i metadanych

W tym temacie opisano nazewnictwo i odwołowanie się do kontenerów, obiektów blob, metadanych i migawek. Konto magazynu może zawierać co najmniej zero kontenerów. Kontener zawiera właściwości, metadane i zero lub więcej obiektów blob. Jeśli konto ma hierarchiczną przestrzeń nazw, kontener może również zawierać zero lub więcej katalogów, a te katalogi mogą zawierać zero lub więcej obiektów blob. Obiekt blob to dowolna pojedyncza jednostka składająca się z danych binarnych, właściwości i metadanych.

Nazwy zasobów

Identyfikator URI odwołujący się do kontenera lub obiektu blob musi być unikatowy. Ponieważ każda nazwa konta jest unikatowa, dwa konta mogą mieć kontenery o tej samej nazwie. Jednak na danym koncie magazynu każdy kontener musi mieć unikatową nazwę. Każdy obiekt blob w danym kontenerze musi również mieć unikatową nazwę w tym kontenerze.

Jeśli spróbujesz utworzyć kontener lub obiekt blob o nazwie naruszającej reguły nazewnictwa, żądanie zakończy się niepowodzeniem z kodem stanu 400 (nieprawidłowe żądanie).

Nazwy obiektów blob i kontenerów są przekazywane do usługi Blob Service w adresie URL. Niektóre znaki muszą być kodowane procentowo, aby pojawiały się w adresie URL przy użyciu protokołu UTF-8 (preferowane) lub MBCS. To kodowanie odbywa się automatycznie podczas korzystania z bibliotek klienckich usługi Azure Storage. Istnieją jednak pewne znaki, które nie są prawidłowe w ścieżkach adresu URL nawet w przypadku kodowania. Jeśli te znaki są wyświetlane w nazwach obiektów blob lub kontenerów, żądanie może zakończyć się niepowodzeniem. Aby uzyskać listę tych znaków, zobacz znaki Unicode, które nie są zalecane do użycia w nazwach kontenerów lub obiektów blob.

Punkty kodu, takie jak \uE000, choć prawidłowe w nazwach plików NTFS, nie są prawidłowymi znakami Unicode, więc nie można ich używać. Ponadto niektóre znaki ASCII lub Unicode, takie jak znaki sterujące (0x00 do 0x1F, \u0081itp.), również nie są dozwolone.

Aby uzyskać dodatkowe reguły dotyczące ciągów Unicode w protokole HTTP/1.1, zobacz RFC 2616, Sekcja 2.2: Podstawowe reguły i RFC 3987.

Nazwy kontenerów

Nazwa kontenera musi być prawidłową nazwą DNS zgodną z następującymi regułami nazewnictwa:

  • Nazwy kontenerów muszą zaczynać lub kończyć się literą lub cyfrą i mogą zawierać tylko litery, cyfry i znak łącznika/minus (-).

  • Każdy znak łącznika/minus (-) musi być bezpośrednio poprzedzony i poprzedzony literą lub cyfrą; łączniki kolejne nie są dozwolone w nazwach kontenerów.

  • Wszystkie litery w nazwie kontenera muszą być małymi literami.

  • Nazwy kontenerów muszą mieć długość od 3 do 63 znaków.

Nazwy katalogów

Jeśli konto ma hierarchiczną przestrzeń nazw, nazwa katalogu musi być zgodna z następującymi regułami nazewnictwa:

  • Nazwa katalogu może zawierać dowolną kombinację znaków.

  • Nazwa katalogu musi mieć długość co najmniej jednego znaku i nie może mieć więcej niż 1024 znaków.

  • W nazwach katalogów jest rozróżniana wielkość liter.

  • Znaki zastrzeżonego adresu URL muszą być prawidłowo uniknięte.

Nuta

Unikaj nazw katalogów kończących się kropką (.), ukośnikiem ukośnika (/), ukośnikiem odwrotnym (\) lub sekwencją lub kombinacją tych dwóch. Żadne segmenty ścieżki nie powinny kończyć się kropką (.).

zrzut ekranu przedstawiający niedozwolony ukośnik odwrotny.

Nazwy obiektów blob

Nazwa obiektu blob musi być zgodna z następującymi regułami nazewnictwa. Te reguły dotyczą również obiektów blob na kontach, które mają hierarchiczną przestrzeń nazw, chyba że określono inaczej.

  • Nazwa obiektu blob może zawierać dowolną kombinację znaków.

  • Nazwa obiektu blob musi mieć długość co najmniej jednego znaku i nie może zawierać więcej niż 1024 znaków w przypadku obiektów blob w usłudze Azure Storage.

    Emulator usługi Azure Storage obsługuje nazwy obiektów blob o długości do 256 znaków. Aby uzyskać więcej informacji, zobacz Use the Azure storage emulator for development and testing(Używanie emulatora usługi Azure Storage do programowania i testowania).

  • W nazwach obiektów blob jest rozróżniana wielkość liter.

  • Znaki zastrzeżonego adresu URL muszą być prawidłowo uniknięte.

  • Istnieją ograniczenia dotyczące liczby segmentów ścieżek składających się z nazwy obiektu blob. Segment ścieżki to ciąg między kolejnymi znakami ogranicznika (na przykład ukośnikiem ukośnika /), który odpowiada katalogowi lub katalogowi wirtualnemu. Następujące ograniczenia segmentu ścieżki dotyczą nazw obiektów blob:

    • Jeśli konto magazynu nie ma włączoną hierarchiczną przestrzeń nazw, liczba segmentów ścieżek składających się z nazwy obiektu blob nie może przekroczyć 254.
    • Jeśli konto magazynu ma włączoną hierarchiczną przestrzeń nazw, liczba segmentów ścieżek składających się z nazwy obiektu blob nie może przekroczyć 63 (w tym segmentów ścieżki dla nazwy konta i nazwy kontenera).

Nuta

Unikaj nazw obiektów blob kończących się kropką (.), ukośnikiem (/), ukośnikiem odwrotnym (\) lub sekwencją lub kombinacją tych dwóch. Żadne segmenty ścieżki nie powinny kończyć się kropką (.).

zrzut ekranu przedstawiający niedozwolone ukośnik do przodu.

Domyślnie usługa Blob service jest oparta na schemacie magazynu płaskiego, a nie na schemacie hierarchicznym. Można jednak określić ogranicznik znaków lub ciągów w nazwie obiektu blob, aby utworzyć hierarchię wirtualną. Na przykład poniższa lista zawiera prawidłowe i unikatowe nazwy obiektów blob. Zwróć uwagę, że ciąg może być prawidłowy zarówno jako nazwa obiektu blob, jak i jako nazwa katalogu wirtualnego w tym samym kontenerze:

  • /a

  • /a.txt

  • /a/b

  • /a/b.txt

Możesz skorzystać z znaku ogranicznika podczas wyliczania obiektów blob.

Nazwy klucza i wartości metadanych

Metadane dla kontenera lub zasobu obiektu blob są przechowywane jako pary nazwa-wartość skojarzone z zasobem. Nazwy kluczy metadanych muszą być zgodne z następującymi regułami nazewnictwa:

  • Musi zaczynać się od litery lub podkreślenia

  • Wszelkie następujące znaki mogą być literami, cyframi lub podkreśleniami

  • Nazwa klucza metadanych musi być prawidłowa ASCII

Nazwy wartości metadanych muszą być również prawidłowe ASCII. Należy pamiętać, że nazwy metadanych zachowują wielkość liter, z którymi zostały utworzone, ale są bez uwzględniania wielkości liter podczas ustawiania lub odczytywania. Jeśli dla zasobu są przesyłane co najmniej dwa nagłówki metadanych o tej samej nazwie, usługa Blob zwraca kod stanu 400 (nieprawidłowe żądanie).

Składnia identyfikatora URI zasobu

Każdy zasób ma odpowiedni podstawowy identyfikator URI, który odwołuje się do samego zasobu.

W przypadku konta magazynu podstawowy identyfikator URI zawiera tylko nazwę konta:

https://myaccount.blob.core.windows.net

W przypadku kontenera podstawowy identyfikator URI zawiera nazwę konta i nazwę kontenera:

https://myaccount.blob.core.windows.net/mycontainer

W przypadku obiektu blob podstawowy identyfikator URI zawiera nazwę konta, nazwę kontenera i nazwę obiektu blob:

https://myaccount.blob.core.windows.net/mycontainer/myblob

Konto magazynu może mieć kontener główny, domyślny kontener, który można pominąć z identyfikatora URI. Do obiektu blob w kontenerze głównym można odwoływać się bez nazewnictwa kontenera lub jawnie odwoływać się do kontenera głównego ($root). Aby uzyskać więcej informacji, zobacz Praca z kontenerem głównym. Oba identyfikatory URI odwołują się do obiektu blob w kontenerze głównym:

https://myaccount.blob.core.windows.net/myblob  
https://myaccount.blob.core.windows.net/$root/myblob  

Migawki obiektów blob

Migawka jest wersją obiektu blob przechowywaną tylko do odczytu, tak jak w momencie utworzenia migawki. Za pomocą migawek można utworzyć kopię zapasową lub punkt kontrolny obiektu blob. Nazwa migawki obiektu blob zawiera podstawowy identyfikator URI obiektu blob oraz wartość daty i godziny, która wskazuje, kiedy migawka została utworzona.

Załóżmy na przykład, że obiekt blob ma następujący identyfikator URI:

https://myaccount.blob.core.windows.net/mycontainer/myblob

Identyfikator URI migawki tego obiektu blob jest tworzony w następujący sposób:

https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>

Poniższa tabela zawiera listę znaków Unicode, które nie są zalecane do użycia w nazwach kontenerów lub obiektów blob. Te znaki, w przypadku użycia w połączeniu z innymi znakami na tej liście, mogą zakończyć się niepowodzeniem dekodowania UTF-8 lub MBCS, co prowadzi do niepowodzenia żądania w usłudze Blob Service.

Znak Unicode
U+0080
U+0082
U+0083
U+0084
U+0085
U+0086
U+0087
U+0088
U+0089
U+008A
U+008B
U+008C
U+008E
U+0091
U+0092
U+0093
U+0094
U+0095
U+0096
U+0097
U+0098
U+0099
U+009A
U+009B
U+009C
U+009E
U+009F
U+FDD1
U+FDD2
U+FDD3
U+FDD4
U+FDD5
U+FDD6
U+FDD7
U+FDD8
U+FDD9
U+FDDA
U+FDDB
U+FDDC
U+FDDE
U+FDDF
U+FDE0
U+FDE1
U+FDE2
U+FDE3
U+FDE4
U+FDE5
U+FDE6
U+FDE7
U+FDE8
U+FDE9
U+FDEA
U+FDEB
U+FDEC
U+FDED
U+FDEE
U+FDEF
U+FFF0
U+FFF1
U+FFF2
U+FFF3
U+FFF4
U+FFF5
U+FFF6
U+FFF7
U+FFF8
U+FFF9
U+FFFA
U+FFFB
U+FFFC
U+FFFD
U+FFFE
U+FFFF
U+1FFFE
U+1FFFF
U+2FFFE
U+2FFFF
U+3FFFE
U+3FFFF
U+5FFFE
U+5FFFF
U+6FFFE
U+6FFFF
U+7FFFE
U+7FFFF
U+9FFFE
U+9FFFF
U+AFFFE
U+AFFFF
U+BFFFE
U+BFFFF
U+DFFFE
U+DFFFF
U+EFFFE
U+EFFFF
U+FFFFE
U+FFFFF

Zobacz też