Przy okazji realizowania projektu migracji magazynu danych do SharePointa Online, z innej platformy, bazującej na systemie Linux przyszło mi się zmagać z dostosowaniem magazynu danych do technologii Microsoft.
W związku z tym podczas migracji danych między systemami konieczne było przekształcenie nazw folderów oraz plików tak, aby spełniły ograniczenia zarówno związane z systemami Windows jak i samym SharePointem Online.
Poniżej przedstawię analizę systemów Windows oraz SharePointa Online w kontekście wymagań dotyczących magazynowania danych.
Systemy Windows (XP, Vista, 7, 8, 8.1, Server 2003, 2008, 2012, 2012 R2)
- Ograniczenia ścieżki do pliku oraz długości nazwy plików
Pierwszym tematem jaki podlega analizie są ograniczenia związane z długością ścieżek prowadzących do plików. Domyślnym limitem systemów Windows* jest 260 znaków. W systemach Unix/Linux limit ten został zniesiony lub jest wielokrotnie większy (w zależności od dystrybucji oraz użytego systemu plików, ale to temat na inny wpis).
Dlatego w kontekście migracji plików pomiędzy tymi platformami konieczne jest przekształcenie struktury folderów zgodnie z wymaganiami przedstawionymi w poniższej tabeli:
Przypadek | Przykład | Dopuszczalna liczba znaków | Komentarz |
---|---|---|---|
Wszystkie znaki | D:\folder1\folder2\nazwapliku.rozszerzenie {nul} | 260 | Limit wymuszony przez system Windows |
Wszystkie znaki bez znaku terminującego | D:\folder1\folder2\nazwapliku.rozszerzenie | 259 | Realny limit ścieżki |
Sama nazwa folderu oraz pliku bez terminatora | folder1\folder2\nazwapliku.rozszerzenie | 256 |
Uwaga 1: W systemach operacyjnych Windows, każda ścieżka zakończona jest niewidocznym znakiem {null} zwanym terminatorem. Znak ten będzie występował zawsze w ścieżce i nie można go zastąpić. Dlatego też jest on teoretycznie wliczony w limit znaków ścieżki, jednak użytkownik nigdy nie ma wpływu na jego treść.
Uwaga 2: Ograniczenie dotyczące długości ścieżki zostało zmienione w systemach Windows 10 oraz Windows Server 2016. Ze szczegółami tej zmiany można zapoznać się na tej stronie.
Tylko po spełnieniu powyższych wymogów możliwe będzie przeprowadzanie operacji takich jak kopiowanie, wycinanie, wklejanie oraz zmiana nazwy plików oraz folderów.
- Ograniczenia w zakresie długości nazw plików:
Kolejnym tematem związanym z plikami w magazynie danych są same nazwy plików oraz folderów. W systemach Windows maksymalną liczbą znaków w nazwie plików oraz folderów jest teoretycznie 255 znaków. Liczba ta jest związana z opisaną powyżej maksymalnie dopuszczalną ilością znaków w ścieżce. Dlatego też przy zmianie nazw plików dobrym podejściem jest dostosowanie plików i folderów w kontekście całościowej ścieżki a nie jako indywidualne elementy.
- Ograniczenia w zakresie znaków w nazwach plików oraz folderów:
W systemie Windows, w nazwach plików nie można użyć następujących znaków:
- < (znak mniejszości)
- > (znak większości)
- : (dwukropek)
- ” (cudzysłów)
- / (prawy ukośnik)
- \ (lewy ukośnik)
- | (kreska pionowa)
- ? (znak zapytania)
- * (gwiazdka)
Należy również zwrócić uwagę na poniższe dodatkowe wymagania:
- nazwy folderów oraz plików nie mogą rozpoczynać się od znaku
- nazwy folderów oraz plików nie mogą zawierać dwóch kropek obok siebie <..>
- kodowanie zapisu znaków musi być zgodne z kodowaniem systemów operacyjnych Windows
Uwagi: W bardzo specyficznych przypadkach kodowania, znaki nie będą wyświetlone w nazwach plików w systemie Windows pomimo, że się tam faktycznie znajdują. Również, znaki które nie są zgodne z obecnym językiem systemu operacyjnego mogą być wyświetlanie niepoprawnie lub (szczególnie w przypadkach języków nie korzystających z alfabetu łacińskiego) jako znak zapytania <?>.
SharePoint Online
SharePoint Online również posiada swoje ograniczenia odnośnie długości ścieżek oraz nazewnictwa plików.
- Ograniczenia ścieżki do pliku oraz długości nazwy plików
Nieco inaczej sprawa ma się przy ścieżkach do plików w SharePoint Online. Tam rzeczywistym ograniczeniem ścieżki do pliku jest limit długości URL danego pliku.
Limitem dla ścieżki URL jest 260 znaków. Jednak w przypadku przesyłania dużej struktury plików do SharePointa należy wziąć pod uwagę tylko ścieżkę relatywną linku do danej biblioteki.
To, co kryje się pod terminem relatywnego linku, najłatwiej zaprezentować na podstawie przykładu:
Przyjmijmy że posiadamy plik który chcemy przesłać do biblioteki SharePoint wraz ze strukturą folderów:
D:\folder1\folder2\folder3\nazwapliku.rozszerzenie
do lokalizacji (biblioteki) na SharePoincie Online pod adresem URL:
https://www.nazwafirmy.domena.com/NazwaSiteCollection/NazwaPage/NazwaSubPage/NazwaBiblioteki
Zatem końcowy link po przesłaniu do będzie prezentował się następująco:
https://www.nazwafirmy.domena.com/NazwaSiteCollection/NazwaPage/NazwaSubPage/NazwaBiblioteki/folder1/folder2/folder3/nazwapliku.rozszerzenie
Jednak limitem ścieżki objęty będzie tylko poniższy fragment linku URL, czyli ścieżka relatywna do pliku:
NazwaSiteCollection/NazwaPage/NazwaSubPage/NazwaBiblioteki/folder1/folder2/folder3/nazwapliku.rozszerzenie
W związku z tym, realny limit długości ścieżki do pliku dla SharePointa Online można przedstawić za pomocą następującego wzoru:
260 – ({ilość znaków w ścieżce URL do biblioteki} – {ilość znaków w URL SharePointa Online})
Natomiast ilość pozostałych znaków mieszczących się w limicie można pokazać za pomocą wzoru poniżej:
260 – ({ilość znaków w ścieżce URL do folderu} – {ilość znaków w URL SharePointa Online})
Bazując na powyższym przykładzie, ilość dostępnych znaków to:
260 – (93 – 35) = 192
Natomiast ilość znaków, które można jeszcze wykorzystać w ścieżce: NazwaSiteCollection/NazwaPage/NazwaSubPage/NazwaBiblioteki/folder1/folder2/folder3/
260 – (118 – 35) = 177
Uwaga: Dodatkowo przy wykonywaniu tych obliczeń warto pamiętać, że znak <spacji> w linku SharePointa wyświetlany będzie jako zestaw znaków w kodowaniu procentowym URL: „%20” jednak należy je liczyć jako jeden znak
- Ograniczenia w zakresie nazw plików:
Podobnie jak system Windows, SharePoint Online dopuszcza wszystkie znaki aktualnie używanego kodowania oraz znaki obecnie używanego języka za wyjątkiem znaków:
- < (znak mniejszości)
- > (znak większości)
- : (dwukropek)
- ” (cudzysłów)
- / (prawy ukośnik)
- \ (lewy ukośnik)
- | (kreska pionowa)
- ? (znak zapytania)
- * (gwiazdka)
- # (kratka)
- % (procent)
Podsumowanie
Sumaryczna tabela wymagań odnośnie operacji na plikach w scenariuszu migracji magazynu danych z platform Linux/Unix do SharePointa Online prezentuje się następująco:
Ograniczenie | Limit |
---|---|
Długość ścieżki | 260 – ({ilość znaków w ścieżce URL do biblioteki} – {ilość znaków w URL SharePointa Online}) |
Długość nazw plików | 260 – ({ilość znaków w ścieżce URL do biblioteki} – {ilość znaków w URL SharePointa Online}) – {ilość znaków w strukturze folderów} |
Zestaw znaków w nazwach plików oraz folderów | 1. Znaki nieobsługiwane: <, >, :, „, /, \, |, ?, *, #, % 2. Nazwy folderów oraz plików nie mogą rozpoczynać się od znaku <spacja>, oraz znaki 3. Nazwy folderów oraz plików nie mogą zawierać dwóch kropek obok siebie <..> 4. Kodowanie zapisu znaków musi być zgodne z kodowaniem systemów operacyjnych Windows |
Na podstawie wymagań zaprezentowanych w powyższej tabeli, możemy rozpocząć pisanie skryptów przekształcających strukturę danych.
Ponadto należy pamiętać, że SharePoint Online posiada również szereg ograniczeń związanych z rozmiarem pojedynczego pliku, ilością elementów w bibliotece czy rozmiaru biblioteki. Dlatego też konieczne jest dokładnie przeanalizowanie ograniczeń obecnej wersji SharePointa Online oraz obecnie zasubskrybowanego planu usługi O365.
Powyższa analiza może również być zastosowania w przypadku migracji danych do produktu One Drive for Business, oferowanego w różnych planach subskrypcyjnych usługi O365.
Bibliografia:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx
Zostaw komentarz