Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln visar hur du använder PowerShell för att skapa och hantera kataloger och filer i lagringskonton som har ett hierarkiskt namnrymd.
För att lära dig hur du hämtar, sätter och uppdaterar åtkomstkontrolllistor (ACL) över kataloger och filer, se Använd PowerShell för att hantera ACL:er i Azure Data Lake Storage.
Referens | Gen1 till Gen2-avbildning | Ge feedback
Prerequisites
Ett Azure-abonnemang. För mer information, se Get Azure gratis provperiod.
Ett lagringskonto som har hierarkiskt namnutrymme aktiverat. Följ dessa instruktioner för att skapa en.
.NET Framework är 4.7.2 eller senare installerat. Mer information finns i Ladda ned .NET Framework.
PowerShell-version
5.1eller senare.
Installera PowerShell-modulen
Verifiera att den version av PowerShell du installerade är
5.1eller högre genom att använda följande kommando.echo $PSVersionTable.PSVersion.ToString()För att uppgradera din version av PowerShell, se Uppgradera befintlig Windows PowerShell.
Installera Az.Storage-modulen .
Install-Module Az.Storage -Repository PSGallery -ForceFör mer information om hur man installerar PowerShell-moduler, se Installera Azure PowerShell-modulen.
Ansluta till kontot
Öppna ett Windows PowerShell-kommandofönster och logga sedan in på din Azure-prenumeration genom att använda kommandot Connect-AzAccount. Följ instruktionerna på skärmen.
Connect-AzAccountOm din identitet är kopplad till mer än en prenumeration och du inte blir ombedd att välja prenumerationen, ställ då in din aktiva prenumeration på prenumerationen på det lagringskonto du vill använda. I det här exemplet ersätter du
<subscription-id>platshållarvärdet med ID:t för din prenumeration.Select-AzSubscription -SubscriptionId <subscription-id>Få kontexten för lagringskontot.
$ctx = New-AzStorageContext -StorageAccountName '<storage-account-name>' -UseConnectedAccount
Skapa en container
En container fungerar som ett filsystem för dina filer. Du kan skapa en genom att använda cmdleten New-AzStorageContainer .
Detta exempel skapar en behållare som heter my-file-system.
$filesystemName = "my-file-system"
New-AzStorageContainer -Context $ctx -Name $filesystemName
Skapa en katalog
Skapa en katalogreferens genom att använda cmdleten New-AzDataLakeGen2Item .
Detta exempel lägger till en katalog med namnet my-directory i en container.
$filesystemName = "my-file-system"
$dirname = "my-directory/"
New-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname -Directory
Detta exempel lägger till samma katalog, men sätter också behörigheter, umask, egenskapsvärden och metadatavärden.
$dir = New-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname -Directory -Permission rwxrwxrwx -Umask ---rwx--- -Property @{"ContentEncoding" = "UDF8"; "CacheControl" = "READ"} -Metadata @{"tag1" = "value1"; "tag2" = "value2" }
Visa katalogegenskaper
Detta exempel får en katalog genom att använda cmdleten Get-AzDataLakeGen2Item , och skriver sedan ut egenskapsvärden till konsolen.
$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
Note
För att få containerns rotkatalog, utelämna parametern -Path .
Byta namn på eller flytta en katalog
Byt namn på eller flytta en katalog med hjälp av Move-AzDataLakeGen2Item-cmdleten .
Detta exempel byter namn på en katalog från namnet my-directory till namnet 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
Note
Använd parametern -Force om du vill skriva över utan promptar.
Detta exempel flyttar en katalog med namnet my-directory till en underkatalog av my-directory-2 med namnet 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
Ta bort en katalog
Radera en katalog genom att använda kommandot Remove-AzDataLakeGen2Item .
Detta exempel raderar en katalog som heter my-directory.
$filesystemName = "my-file-system"
$dirname = "my-directory/"
Remove-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname
Du kan använda parametern -Force för att ta bort filen utan en prompt.
Ladda ned från en katalog
Ladda ner en fil från en katalog med hjälp av Get-AzDataLakeGen2ItemContent-cmdleten .
Detta exempel laddar ner en fil med namnet upload.txt från en katalog som heter my-directory.
$filesystemName = "my-file-system"
$filePath = "my-directory/upload.txt"
$downloadFilePath = "download.txt"
Get-AzDataLakeGen2ItemContent -Context $ctx -FileSystem $filesystemName -Path $filePath -Destination $downloadFilePath
Visa innehållet i katalogen
Lista innehållet i en katalog med hjälp av cmdleten Get-AzDataLakeGen2ChildItem . Du kan använda den valfria parametern -OutputUserPrincipalName för att få användarnas namn (istället för objekt-ID).
Detta exempel listar innehållet i en katalog med namnet my-directory.
$filesystemName = "my-file-system"
$dirname = "my-directory/"
Get-AzDataLakeGen2ChildItem -Context $ctx -FileSystem $filesystemName -Path $dirname -OutputUserPrincipalName
Följande exempel listar egenskaperna ACL, Permissions, Group och Owner för varje objekt i katalogen. Parametern -FetchProperty krävs för att få värden för egenskapen ACL .
$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
Note
För att lista innehållet i containerns rotkatalog, utelämna parametern -Path .
Ladda upp en fil till en katalog
Ladda upp en fil till en katalog med hjälp av cmdleten New-AzDataLakeGen2Item .
Detta exempel laddar upp en fil med namnet upload.txt till en katalog som heter 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
Detta exempel laddar upp samma fil, men sätter sedan behörigheter, umask, egenskapsvärden och metadatavärden för destinationsfilen. Detta exempel skriver också ut dessa värden till konsolen.
$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
Note
För att ladda upp en fil till containerns rotkatalog, utelämna parametern -Path .
Visa filegenskaper
Detta exempel får en fil genom att använda cmdleten Get-AzDataLakeGen2Item , och skriver sedan ut egenskapsvärden till konsolen.
$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
Ta bort en fil
Ta bort en fil genom att använda cmdleten Remove-AzDataLakeGen2Item .
Detta exempel raderar en fil som heter upload.txt.
$filesystemName = "my-file-system"
$filepath = "upload.txt"
Remove-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $filepath
Du kan använda parametern -Force för att ta bort filen utan en prompt.
Gen1 till Gen2-mappning
Följande tabell visar hur de cmdlets som används för Data Lake Storage Gen1 motsvarar cmdletsen för Data Lake Storage.
Note
Azure Data Lake Storage Gen1 är nu pensionerat. Se pensionsbeskedet här. Data Lake Storage Gen1-resurser är inte längre tillgängliga. Om du behöver särskild hjälp, vänligen kontakta oss.
| Data Lake Storage Gen1-cmdlet | cmdleten för Data Lake Storage | Anteckningar |
|---|---|---|
| Get-AzDataLakeStoreChildItem | Get-AzDataLakeGen2ChildItem | Som standard listar Get-AzDataLakeGen2ChildItem-cmdleten endast barnobjekten på första nivån. Parametern -Recurse listar underordnade objekt rekursivt. |
| Get-AzDataLakeStoreItem Get-AzDataLakeStoreItemAclEntry Get-AzDataLakeStoreItemOwner Get-AzDataLakeStoreItemPermission |
Get-AzDataLakeGen2Item | Utdataobjekten i Get-AzDataLakeGen2Item-cmdleten har dessa egenskaper: Acl, Ägare, Grupp, Behörighet. |
| Get-AzDataLakeStoreItemContent | Get-AzDataLakeGen2FileContent | Cmdleten Get-AzDataLakeGen2FileContent laddar ned filens innehåll till en lokal fil. |
| Move-AzDataLakeStoreItem | Move-AzDataLakeGen2Item | |
| New-AzDataLakeStoreItem | New-AzDataLakeGen2Item | Denna cmdlet laddar upp det nya filinnehållet från en lokal fil. |
| Remove-AzDataLakeStoreItem | Remove-AzDataLakeGen2Item | |
| Set-AzDataLakeStoreItemOwner Set-AzDataLakeStoreItemPermission Set-AzDataLakeStoreItemAcl |
Update-AzDataLakeGen2Item | Den Update-AzDataLakeGen2Item cmdleten uppdaterar endast ett enskilt objekt, och inte rekursivt. Om du vill uppdatera rekursivt listar du objekten med hjälp av cmdleten Get-AzDataLakeStoreChildItem och skickar dem sedan via pipelinen till cmdleten Update-AzDataLakeGen2Item. |
| Test-AzDataLakeStoreItem | Get-AzDataLakeGen2Item | Cmdleten Get-AzDataLakeGen2Item rapporterar ett fel om objektet inte finns. |