Uwaga
Dostęp do tej strony wymaga autoryzacji. Może 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ę
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
.
Sprawdź, czy zainstalowana wersja programu PowerShell jest
5.1
lub 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 -Force
Aby uzyskać więcej informacji na temat sposobu instalowania modułów programu PowerShell, zobacz Instalowanie modułu programu Azure PowerShell
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-AzAccount
Jeś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
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
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" }
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 .
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
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.
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ś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 .
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 .
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
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.
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. |