Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule pokazano, jak używać PowerShell do tworzenia i zarządzania katalogami i plikami na kontach magazynu, które wykorzystują hierarchiczną przestrzeń nazw.
Aby dowiedzieć się, jak pobierać, ustawiać i aktualizować listy kontroli dostępu (ACL) katalogów i plików, zobacz Używanie programu PowerShell do zarządzania listami ACL w usłudze Azure Data Lake Storage.
Referencja | Mapowanie z Gen1 do Gen2 | Przekaż opinię
Wymagania wstępne
Subskrypcja platformy Azure. Aby uzyskać więcej informacji, zobacz Uzyskiwanie bezpłatnej wersji próbnej platformy Azure.
Konto magazynowe z włączoną obsługą hierarchicznej przestrzeni nazw. Postępuj zgodnie z tymi instrukcjami, aby je utworzyć.
Program .NET Framework jest zainstalowany w wersji 4.7.2 lub nowszej. Aby uzyskać więcej informacji, zobacz Pobieranie programu .NET Framework.
Wersja programu PowerShell lub nowsza
5.1.
Zainstaluj moduł programu PowerShell
Sprawdź, czy zainstalowana wersja programu PowerShell jest
5.1lub nowsza, używając następującego polecenia.echo $PSVersionTable.PSVersion.ToString()Aby uaktualnić wersję programu PowerShell, zobacz Uaktualnianie istniejącego programu Windows PowerShell
Zainstaluj moduł Az.Storage .
Install-Module Az.Storage -Repository PSGallery -ForceAby uzyskać więcej informacji na temat sposobu instalowania modułów programu PowerShell, zobacz Instalowanie modułu programu Azure PowerShell
Nawiązywanie połączenia z kontem
Otwórz okno polecenia programu Windows PowerShell, a następnie zaloguj się do subskrypcji platformy Azure za pomocą polecenia Connect-AzAccount i postępuj zgodnie z instrukcjami wyświetlanymi na ekranie.
Connect-AzAccountJeśli twoja tożsamość jest powiązana z więcej niż jedną subskrypcją i nie zostaniesz poproszony o wybranie subskrypcji, ustaw aktywną subskrypcję na subskrypcję tego konta magazynu, na którym chcesz pracować. W tym przykładzie zastąp wartość zastępczą
<subscription-id>identyfikatorem subskrypcji.Select-AzSubscription -SubscriptionId <subscription-id>Pobierz kontekst konta magazynu.
$ctx = New-AzStorageContext -StorageAccountName '<storage-account-name>' -UseConnectedAccount
Tworzenie kontenera
Kontener działa jako system plików. Możesz go utworzyć za pomocą polecenia cmdlet New-AzStorageContainer .
W tym przykładzie zostanie utworzony kontener o nazwie my-file-system.
$filesystemName = "my-file-system"
New-AzStorageContainer -Context $ctx -Name $filesystemName
Tworzenie katalogu
Utwórz odwołanie do katalogu, używając cmdletu New-AzDataLakeGen2Item.
W tym przykładzie zostanie dodany katalog o nazwie my-directory do kontenera.
$filesystemName = "my-file-system"
$dirname = "my-directory/"
New-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname -Directory
W tym przykładzie dodano ten sam katalog, ale także ustawiono uprawnienia, umask, wartości właściwości i wartości metadanych.
$dir = New-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname -Directory -Permission rwxrwxrwx -Umask ---rwx--- -Property @{"ContentEncoding" = "UDF8"; "CacheControl" = "READ"} -Metadata @{"tag1" = "value1"; "tag2" = "value2" }
Pokaż właściwości katalogu
Ten przykład pobiera katalog przy użyciu polecenia cmdlet Get-AzDataLakeGen2Item , a następnie wyświetla wartości właściwości w konsoli.
$filesystemName = "my-file-system"
$dirname = "my-directory/"
$dir = Get-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname
$dir.ACL
$dir.Permissions
$dir.Group
$dir.Owner
$dir.Properties
$dir.Properties.Metadata
Uwaga
Aby uzyskać katalog główny kontenera, pomiń -Path parametr .
Zmienianie nazwy lub przenoszenie katalogu
Zmień nazwę lub przenieś katalog przy użyciu polecenia cmdlet Move-AzDataLakeGen2Item .
W tym przykładzie zmieniono nazwę katalogu z nazwy my-directory na nazwę my-new-directory.
$filesystemName = "my-file-system"
$dirname = "my-directory/"
$dirname2 = "my-new-directory/"
Move-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname -DestFileSystem $filesystemName -DestPath $dirname2
Uwaga
Użyj parametru -Force, jeśli chcesz nadpisać bez potwierdzeń.
W tym przykładzie zostanie przeniesiony katalog o nazwie my-directory do podkatalogu my-directory-2 o nazwie my-subdirectory.
$filesystemName = "my-file-system"
$dirname = "my-directory/"
$dirname2 = "my-directory-2/my-subdirectory/"
Move-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname -DestFileSystem $filesystemName -DestPath $dirname2
Usuwanie katalogu
Usuń katalog przy użyciu Remove-AzDataLakeGen2Item cmdlet.
W tym przykładzie usunięto katalog o nazwie my-directory.
$filesystemName = "my-file-system"
$dirname = "my-directory/"
Remove-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname
Możesz użyć parametru -Force , aby usunąć plik bez monitu.
Pobieranie z katalogu
Pobierz plik z katalogu przy użyciu cmdlet Get-AzDataLakeGen2ItemContent.
Ten przykład pobiera plik o nazwie upload.txt z katalogu o nazwie my-directory.
$filesystemName = "my-file-system"
$filePath = "my-directory/upload.txt"
$downloadFilePath = "download.txt"
Get-AzDataLakeGen2ItemContent -Context $ctx -FileSystem $filesystemName -Path $filePath -Destination $downloadFilePath
Wyświetlanie zawartości katalogu
Wyświetl listę zawartości katalogu przy użyciu cmdletu Get-AzDataLakeGen2ChildItem. Możesz użyć opcjonalnego parametru -OutputUserPrincipalName , aby uzyskać nazwę (zamiast identyfikatora obiektu) użytkowników.
W tym przykładzie wymieniono zawartość katalogu o nazwie my-directory.
$filesystemName = "my-file-system"
$dirname = "my-directory/"
Get-AzDataLakeGen2ChildItem -Context $ctx -FileSystem $filesystemName -Path $dirname -OutputUserPrincipalName
W poniższym przykładzie wymieniono ACL właściwości, Permissions, Group i Owner każdego elementu w katalogu. Parametr -FetchProperty jest wymagany do pobrania wartości dla ACL właściwości .
$filesystemName = "my-file-system"
$dirname = "my-directory/"
$properties = Get-AzDataLakeGen2ChildItem -Context $ctx -FileSystem $filesystemName -Path $dirname -Recurse -FetchProperty
$properties.ACL
$properties.Permissions
$properties.Group
$properties.Owner
Uwaga
Aby wyświetlić listę zawartości katalogu głównego kontenera, pomiń -Path parametr .
Przekazywanie pliku do katalogu
Przekaż plik do katalogu przy użyciu polecenia cmdlet New-AzDataLakeGen2Item .
Ten przykład przekazuje plik o nazwie upload.txt do katalogu o nazwie my-directory.
$localSrcFile = "upload.txt"
$filesystemName = "my-file-system"
$dirname = "my-directory/"
$destPath = $dirname + (Get-Item $localSrcFile).Name
New-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $destPath -Source $localSrcFile -Force
Ten przykład przekazuje ten sam plik, ale następnie ustawia wartości właściwości, wartości metadanych, uprawnienia i umask pliku docelowego. W tym przykładzie wartości są również wyświetlane w konsoli.
$file = New-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $destPath -Source $localSrcFile -Permission rwxrwxrwx -Umask ---rwx--- -Property @{"ContentEncoding" = "UDF8"; "CacheControl" = "READ"} -Metadata @{"tag1" = "value1"; "tag2" = "value2" }
$file1
$file1.Properties
$file1.Properties.Metadata
Uwaga
Aby przekazać plik do katalogu głównego kontenera, pomiń -Path parametr .
Pokaż właściwości pliku
W tym przykładzie plik jest pobierany przy użyciu polecenia cmdlet Get-AzDataLakeGen2Item , a następnie wyświetla wartości właściwości w konsoli.
$filepath = "my-directory/upload.txt"
$filesystemName = "my-file-system"
$file = Get-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $filepath
$file
$file.ACL
$file.Permissions
$file.Group
$file.Owner
$file.Properties
$file.Properties.Metadata
Usuwanie pliku
Usuń plik przy użyciu polecenia cmdlet Remove-AzDataLakeGen2Item .
W tym przykładzie usunięto plik o nazwie upload.txt.
$filesystemName = "my-file-system"
$filepath = "upload.txt"
Remove-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $filepath
Możesz użyć parametru -Force , aby usunąć plik bez monitu.
Mapowanie gen1–Gen2
W poniższej tabeli przedstawiono, w jaki sposób polecenia cmdlet używane w Data Lake Storage Gen1 są mapowane na cmdlet dla Data Lake Storage.
Uwaga
Usługa Azure Data Lake Storage Gen1 została wycofana. Zobacz ogłoszenie o wycofaniu tutaj. Zasoby usługi Data Lake Storage Gen1 nie są już dostępne. Jeśli potrzebujesz specjalnej pomocy, skontaktuj się z nami.
| Polecenie cmdlet dla usługi Data Lake Storage Gen1 | Polecenie cmdlet usługi Data Lake Storage | Uwagi |
|---|---|---|
| Get-AzDataLakeStoreChildItem | Get-AzDataLakeGen2ChildItem | Domyślnie polecenie cmdlet Get-AzDataLakeGen2ChildItem wyświetla tylko elementy podrzędne pierwszego poziomu. Parametr -Recurse wyświetla elementy podrzędne rekursywnie. |
| Get-AzDataLakeStoreItem Get-AzDataLakeStoreItemAclEntry Get-AzDataLakeStoreItemOwner Get-AzDataLakeStoreItemPermission |
Get-AzDataLakeGen2Item | Elementy wyjściowe polecenia cmdlet Get-AzDataLakeGen2Item mają następujące właściwości: Acl, Owner, Group, Permission. |
| Get-AzDataLakeStoreItemContent | Get-AzDataLakeGen2FileContent | Polecenie cmdlet Get-AzDataLakeGen2FileContent pobierz zawartość pliku do pliku lokalnego. |
| Move-AzDataLakeStoreItem | Move-AzDataLakeGen2Item | |
| New-AzDataLakeStoreItem | New-AzDataLakeGen2Item | To polecenie cmdlet przekazuje nową zawartość pliku z pliku lokalnego. |
| Remove-AzDataLakeStoreItem | Remove-AzDataLakeGen2Item | |
| Set-AzDataLakeStoreItemOwner Set-AzDataLakeStoreItemPermission Set-AzDataLakeStoreItemAcl |
Update-AzDataLakeGen2Item | Polecenie cmdlet Update-AzDataLakeGen2Item aktualizuje tylko pojedynczy element, a nie rekursywnie. Jeśli chcesz zaktualizować rekursywnie, wymień elementy za pomocą polecenia cmdlet Get-AzDataLakeStoreChildItem, a następnie przekaż je do potoku polecenia cmdlet Update-AzDataLakeGen2Item. |
| Test-AzDataLakeStoreItem | Get-AzDataLakeGen2Item | Polecenie cmdlet Get-AzDataLakeGen2Item zgłasza błąd, jeśli element nie istnieje. |