Könyvtárak és fájlok kezelése a PowerShell használatával az Azure Data Lake Storage Gen2-ben
Ez a cikk bemutatja, hogyan hozhat létre és kezelhet címtárakat és fájlokat hierarchikus névtérrel rendelkező tárfiókokban a PowerShell használatával.
A címtárak és fájlok hozzáférés-vezérlési listáinak (ACL) beszerzéséről, beállításáról és frissítéséről a PowerShell használata a 2. generációs Azure Data Lake Storage ACL-ek kezeléséhez című témakörben olvashat.
Gen1–Gen2-leképezés | – Visszajelzés küldése |
Előfeltételek
Azure-előfizetés. További információ: Ingyenes Azure-próbaidőszak lekérése.
Olyan tárfiók, amely engedélyezve van a hierarchikus névtérrel. Az alábbi utasításokat követve hozzon létre egyet.
.NET-keretrendszer 4.7.2 vagy újabb verzió van telepítve. További információ: .NET-keretrendszer letöltése.
PowerShell-verzió
5.1
vagy újabb.
A PowerShell-modul telepítése
Az alábbi paranccsal ellenőrizze, hogy a Telepített
5.1
PowerShell-verzió vagy annál magasabb-e.echo $PSVersionTable.PSVersion.ToString()
A PowerShell verziójának frissítéséről további információt a meglévő Windows PowerShell frissítése című témakörben talál .
Telepítse az Az.Storage modult.
Install-Module Az.Storage -Repository PSGallery -Force
További információ a PowerShell-modulok telepítéséről: Az Azure PowerShell-modul telepítése
Csatlakozás a fiókhoz
Adja meg, hogy a parancsok hogyan kérhessenek engedélyt a tárfiókhoz.
1. lehetőség: Engedélyezés beszerzése a Microsoft Entra-azonosítóval
Ezzel a módszerrel a rendszer biztosítja, hogy a felhasználói fiók rendelkezik a megfelelő Azure-szerepköralapú hozzáférés-vezérlési (Azure RBAC-) hozzárendelésekkel és ACL-engedélyekkel.
Nyisson meg egy Windows PowerShell-parancsablakot, majd jelentkezzen be az Azure-előfizetésbe a
Connect-AzAccount
paranccsal, és kövesse a képernyőn megjelenő utasításokat.Connect-AzAccount
Ha identitása több előfizetéshez van társítva, állítsa be az aktív előfizetést annak a tárfióknak az előfizetésére, amelyben címtárakat szeretne létrehozni és kezelni. Ebben a példában cserélje le a
<subscription-id>
helyőrző értékét az előfizetés azonosítójára.Select-AzSubscription -SubscriptionId <subscription-id>
A tárfiók környezetének lekérése.
$ctx = New-AzStorageContext -StorageAccountName '<storage-account-name>' -UseConnectedAccount
2. lehetőség: Engedélyezés beszerzése a tárfiókkulcs használatával
Ezzel a módszerrel a rendszer nem ellenőrzi az Azure RBAC- vagy ACL-engedélyeket. A tárfiók környezetének lekérése egy fiókkulcs használatával.
$ctx = New-AzStorageContext -StorageAccountName '<storage-account-name>' -StorageAccountKey '<storage-account-key>'
Tároló létrehozása
A tároló fájlrendszerként működik a fájlokhoz. A parancsmaggal New-AzStorageContainer
létrehozhat egyet.
Ez a példa létrehoz egy tárolót .my-file-system
$filesystemName = "my-file-system"
New-AzStorageContainer -Context $ctx -Name $filesystemName
Címtár létrehozása
Hozzon létre egy címtárhivatkozást a New-AzDataLakeGen2Item
parancsmag használatával.
Ez a példa egy tárolóhoz elnevezett my-directory
könyvtárat ad hozzá.
$filesystemName = "my-file-system"
$dirname = "my-directory/"
New-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname -Directory
Ez a példa ugyanazt a könyvtárat adja hozzá, de beállítja az engedélyeket, az umaszkot, a tulajdonságértékeket és a metaadat-értékeket is.
$dir = New-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname -Directory -Permission rwxrwxrwx -Umask ---rwx--- -Property @{"ContentEncoding" = "UDF8"; "CacheControl" = "READ"} -Metadata @{"tag1" = "value1"; "tag2" = "value2" }
Címtártulajdonságok megjelenítése
Ez a példa a parancsmaggal lekéri a Get-AzDataLakeGen2Item
könyvtárat, majd a tulajdonságértékeket a konzolra nyomtatja.
$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
Feljegyzés
A tároló gyökérkönyvtárának lekéréséhez hagyja ki a paramétert -Path
.
Címtár átnevezése vagy áthelyezése
Nevezze át vagy helyezze át a címtárat a Move-AzDataLakeGen2Item
parancsmag használatával.
Ez a példa átnevez egy könyvtárat a névről my-directory
a névre 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
Feljegyzés
Használja a paramétert -Force
, ha kérések nélkül szeretné felülírni.
Ez a példa áthelyez egy névvel ellátott my-directory
könyvtárat a nevesített my-subdirectory
alkönyvtárbamy-directory-2
.
$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
Könyvtár törlése
Könyvtár törlése a Remove-AzDataLakeGen2Item
parancsmag használatával.
Ez a példa egy névvel ellátott my-directory
könyvtárat töröl.
$filesystemName = "my-file-system"
$dirname = "my-directory/"
Remove-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname
A paraméterrel -Force
kérés nélkül is eltávolíthatja a fájlt.
Letöltés könyvtárból
Töltse le a fájlt egy könyvtárból a Get-AzDataLakeGen2ItemContent
parancsmag használatával.
Ez a példa egy névvel my-directory
ellátott upload.txt
könyvtárból tölt le egy fájlt.
$filesystemName = "my-file-system"
$filePath = "my-directory/upload.txt"
$downloadFilePath = "download.txt"
Get-AzDataLakeGen2ItemContent -Context $ctx -FileSystem $filesystemName -Path $filePath -Destination $downloadFilePath
Könyvtár tartalmának listázása
A parancsmaggal listázhatja egy Get-AzDataLakeGen2ChildItem
könyvtár tartalmát. Az opcionális paraméterrel -OutputUserPrincipalName
lekérheti a felhasználók nevét (az objektumazonosító helyett).
Ez a példa egy névvel ellátott könyvtár tartalmát sorolja fel my-directory
.
$filesystemName = "my-file-system"
$dirname = "my-directory/"
Get-AzDataLakeGen2ChildItem -Context $ctx -FileSystem $filesystemName -Path $dirname -OutputUserPrincipalName
Az alábbi példa a ACL
könyvtár egyes elemeinek tulajdonságait Permissions
Group
és Owner
tulajdonságait sorolja fel. A -FetchProperty
paraméter a tulajdonság értékeinek lekéréséhez ACL
szükséges.
$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
Feljegyzés
A tároló gyökérkönyvtárának tartalmának listázásához hagyja ki a paramétert -Path
.
Fájl feltöltése könyvtárba
Töltsön fel egy fájlt egy könyvtárba a New-AzDataLakeGen2Item
parancsmag használatával.
Ez a példa feltölt egy fájlt egy névvel ellátott upload.txt
my-directory
könyvtárba.
$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
Ez a példa feltölti ugyanazt a fájlt, majd beállítja a célfájl engedélyeit, umaszkját, tulajdonságértékeit és metaadat-értékeit. Ez a példa ezeket az értékeket a konzolra is nyomtatja.
$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
Feljegyzés
Ha fel szeretne tölteni egy fájlt a tároló gyökérkönyvtárába, hagyja ki a paramétert -Path
.
Fájltulajdonságok megjelenítése
Ez a példa a parancsmaggal lekéri a Get-AzDataLakeGen2Item
fájlt, majd a tulajdonságértékeket a konzolra nyomtatja.
$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
Fájl törlése
Fájl törlése a Remove-AzDataLakeGen2Item
parancsmag használatával.
Ez a példa töröl egy nevű fájlt upload.txt
.
$filesystemName = "my-file-system"
$filepath = "upload.txt"
Remove-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $filepath
A paraméterrel -Force
kérés nélkül is eltávolíthatja a fájlt.
Gen1–Gen2 leképezés
Az alábbi táblázat bemutatja, hogy a Data Lake Storage Gen1-hez használt parancsmagok hogyan képezik le a Data Lake Storage Gen2 parancsmagjait.
Feljegyzés
Az Azure Data Lake Storage Gen1 ki lett állítva. A nyugdíjazási bejelentést itt találja. A Data Lake Storage Gen1-erőforrások már nem érhetők el. Ha különleges segítségre van szüksége, forduljon hozzánk.
Data Lake Storage Gen1 parancsmag | Data Lake Storage Gen2-parancsmag | Jegyzetek |
---|---|---|
Get-AzDataLakeStoreChildItem | Get-AzDataLakeGen2ChildItem | Alapértelmezés szerint a Get-AzDataLakeGen2ChildItem parancsmag csak az első szintű gyermekelemeket listázza. A -Recurse paraméter rekurzív módon listázza a gyermekelemeket. |
Get-AzDataLakeStoreItem Get-AzDataLakeStoreItemAclEntry Get-AzDataLakeStoreItemOwner Get-AzDataLakeStoreItemPermission |
Get-AzDataLakeGen2Item | A Get-AzDataLakeGen2Item parancsmag kimeneti elemei a következő tulajdonságokkal rendelkeznek: Acl, Tulajdonos, Csoport, Engedély. |
Get-AzDataLakeStoreItemContent | Get-AzDataLakeGen2FileContent | A Get-AzDataLakeGen2FileContent parancsmag letölti a fájl tartalmát a helyi fájlba. |
Move-AzDataLakeStoreItem | Move-AzDataLakeGen2Item | |
New-AzDataLakeStoreItem | New-AzDataLakeGen2Item | Ez a parancsmag feltölti az új fájltartalmat egy helyi fájlból. |
Remove-AzDataLakeStoreItem | Remove-AzDataLakeGen2Item | |
Set-AzDataLakeStoreItemOwner Set-AzDataLakeStoreItemPermission Set-AzDataLakeStoreItemAcl |
Update-AzDataLakeGen2Item | Az Update-AzDataLakeGen2Item parancsmag csak egyetlen elemet frissít, rekurzív módon nem. Ha rekurzív módon szeretne frissíteni, listázzon elemeket a Get-AzDataLakeStoreChildItem parancsmaggal, majd folytassa a folyamatot az Update-AzDataLakeGen2Item parancsmaggal. |
Test-AzDataLakeStoreItem | Get-AzDataLakeGen2Item | A Get-AzDataLakeGen2Item parancsmag hibát jelez, ha az elem nem létezik. |