Megosztás a következőn keresztül:


Könyvtárak és fájlok kezelése a PowerShell használatával az Azure Data Lake Storage-ban

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 az Azure Data Lake Storage ACL-einek kezeléséhez című témakörben olvashat.

Hivatkozás | 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, amelyben a hierarchikus névtér engedélyezve van. 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 PowerShell-verzió 5.1 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

  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 egynél több előfizetéshez van társítva, és a rendszer nem kéri az előfizetés kiválasztását, állítsa be az aktív előfizetést annak a tárfióknak az előfizetésére, amelyen működni szeretne. 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
    

Tároló létrehozása

A tároló a fájljaid fájlrendszereként működik. Létrehozhat egyet a New-AzStorageContainer parancsmaggal.

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 Get-AzDataLakeGen2Item parancsmaggal szerez be egy könyvtárat, majd kinyomtatja a tulajdonságértékeket a konzolon.

$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

Megjegyzés

A tároló gyökérkönyvtárának lekéréséhez hagyja ki a -Path paramétert.

Címtár átnevezése vagy áthelyezése

Címtár átnevezése vagy áthelyezése a Move-AzDataLakeGen2Item parancsmaggal.

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-directory-2alkönyvtárbamy-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

Mappa törlése

Könyvtár törlése a Remove-AzDataLakeGen2Item parancsmaggal.

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öltsön le egy fájlt egy könyvtárból a Get-AzDataLakeGen2ItemContent parancsmag használatával.

Ez a példa egy névvel upload.txtellátott my-directory 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

Listázhatja egy könyvtár tartalmát a Get-AzDataLakeGen2ChildItem parancsmaggal. 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 felsorolja a ACL, Permissions, Group és Owner tulajdonságait a könyvtár egyes elemeinek. A -FetchProperty paraméter a ACL tulajdonság értékeinek lekéréséhez 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 -Path paramétert.

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 beolvas egy fájlt a Get-AzDataLakeGen2Item parancsmaggal, majd kinyomtatja a tulajdonságértékeket a konzolon.

$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 parancsmaggal.

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-ben használt parancsmagok hogyan képezik le a Data Lake Storage parancsmagjait.

Feljegyzés

Az Azure Data Lake Storage Gen1 mostanra megszűnt. 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 parancsmodul Data Lake Storage parancs 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