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

  1. 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 .

  2. 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.

  1. 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
    
  2. 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>
    
  3. 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-subdirectoryalkö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-directorykö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-directoryellá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 ACLkönyvtár egyes elemeinek tulajdonságait PermissionsGroupé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.txtmy-directorykö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.

Lásd még