Aracılığıyla paylaş


Azure Data Lake Storage 2. Nesil'da dizinleri ve dosyaları yönetmek için PowerShell kullanma

Bu makalede, hiyerarşik ad alanına sahip depolama hesaplarında dizinler ve dosyalar oluşturmak ve yönetmek için PowerShell'in nasıl kullanılacağı gösterilmektedir.

Dizinlerin ve dosyaların erişim denetim listelerini (ACL) alma, ayarlama ve güncelleştirme hakkında bilgi edinmek için bkz. Azure Data Lake Storage 2. Nesil'da ACL'leri yönetmek için PowerShell kullanma.

1. Nesil-2. Nesil eşlemesi başvurusu | Geri bildirimde bulunmak |

Önkoşullar

PowerShell modülünü yükleme

  1. Aşağıdaki komutu kullanarak yüklü PowerShell sürümünün veya daha yüksek olduğunu 5.1 doğrulayın.

    echo $PSVersionTable.PSVersion.ToString()
    

    PowerShell sürümünüzü yükseltmek için bkz . Mevcut Windows PowerShell'i yükseltme

  2. Az.Depolama modülünü yükleyin.

    Install-Module Az.Storage -Repository PSGallery -Force  
    

    PowerShell modüllerini yükleme hakkında daha fazla bilgi için bkz . Azure PowerShell modülünü yükleme

Hesaba Bağlan

Komutlarınızın depolama hesabında nasıl yetkilendirme almasını istediğinizi seçin.

1. Seçenek: Microsoft Entra Id kullanarak yetkilendirme alma

Bu yaklaşımla sistem, kullanıcı hesabınızın uygun Azure rol tabanlı erişim denetimi (Azure RBAC) atamalarına ve ACL izinlerine sahip olmasını sağlar.

  1. Bir Windows PowerShell komut penceresi açın ve ardından komutuyla Connect-AzAccount Azure aboneliğinizde oturum açın ve ekrandaki yönergeleri izleyin.

    Connect-AzAccount
    
  2. Kimliğiniz birden fazla abonelikle ilişkiliyse, etkin aboneliğinizi dizinleri oluşturmak ve yönetmek istediğiniz depolama hesabının aboneliğine ayarlayın. Bu örnekte yer tutucu değerini aboneliğinizin kimliğiyle değiştirin <subscription-id> .

    Select-AzSubscription -SubscriptionId <subscription-id>
    
  3. Depolama hesabı bağlamını alın.

    $ctx = New-AzStorageContext -StorageAccountName '<storage-account-name>' -UseConnectedAccount
    

2. Seçenek: Depolama hesabı anahtarını kullanarak yetkilendirme alma

Bu yaklaşımla sistem Azure RBAC veya ACL izinlerini denetlemez. Bir hesap anahtarı kullanarak depolama hesabı bağlamını alın.

$ctx = New-AzStorageContext -StorageAccountName '<storage-account-name>' -StorageAccountKey '<storage-account-key>'

Kapsayıcı oluşturma

Kapsayıcı, dosyalarınız için dosya sistemi görevi görür. Cmdlet'ini New-AzStorageContainer kullanarak bir tane oluşturabilirsiniz.

Bu örnek adlı my-file-systembir kapsayıcı oluşturur.

$filesystemName = "my-file-system"
New-AzStorageContainer -Context $ctx -Name $filesystemName

Dizin oluşturma

cmdlet'ini New-AzDataLakeGen2Item kullanarak bir dizin başvurusu oluşturun.

Bu örnek, kapsayıcıya adlı my-directory bir dizin ekler.

$filesystemName = "my-file-system"
$dirname = "my-directory/"
New-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname -Directory

Bu örnek aynı dizini ekler, ancak izinleri, umask'ı, özellik değerlerini ve meta veri değerlerini de ayarlar.

$dir = New-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname -Directory -Permission rwxrwxrwx -Umask ---rwx---  -Property @{"ContentEncoding" = "UDF8"; "CacheControl" = "READ"} -Metadata  @{"tag1" = "value1"; "tag2" = "value2" }

Dizin özelliklerini göster

Bu örnek, cmdlet'ini Get-AzDataLakeGen2Item kullanarak bir dizin alır ve ardından özellik değerlerini konsola yazdırır.

$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

Not

Kapsayıcının kök dizinini almak için parametresini atlar -Path .

Bir dizini yeniden adlandırma veya taşıma

cmdlet'ini kullanarak dizini yeniden adlandırın Move-AzDataLakeGen2Item veya taşıyın.

Bu örnek, adından my-directory bir dizini adına my-new-directoryyeniden adlandırır.

$filesystemName = "my-file-system"
$dirname = "my-directory/"
$dirname2 = "my-new-directory/"
Move-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname -DestFileSystem $filesystemName -DestPath $dirname2

Not

İstem -Force olmadan üzerine yazmak istiyorsanız parametresini kullanın.

Bu örnek, adlı bir dizini adlı my-directory alt dizinine my-directory-2my-subdirectorytaşır.

$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

Bir dizini silme

cmdlet'ini Remove-AzDataLakeGen2Item kullanarak bir dizini silin.

Bu örnekte adlı my-directorybir dizin silinir.

$filesystemName = "my-file-system"
$dirname = "my-directory/"
Remove-AzDataLakeGen2Item  -Context $ctx -FileSystem $filesystemName -Path $dirname

parametresini -Force kullanarak dosyayı istem olmadan kaldırabilirsiniz.

Dizinden indirme

cmdlet'ini kullanarak bir dizinden Get-AzDataLakeGen2ItemContent dosya indirin.

Bu örnekte adlı dizinden adlı upload.txtmy-directorybir dosya indirilir.

$filesystemName = "my-file-system"
$filePath = "my-directory/upload.txt"
$downloadFilePath = "download.txt"
Get-AzDataLakeGen2ItemContent -Context $ctx -FileSystem $filesystemName -Path $filePath -Destination $downloadFilePath

Dizin içeriğini listeleme

cmdlet'ini kullanarak bir dizinin içeriğini listeleyin Get-AzDataLakeGen2ChildItem . kullanıcıların adını (nesne kimliği yerine) almak için isteğe bağlı parametresini -OutputUserPrincipalName kullanabilirsiniz.

Bu örnekte adlı my-directorydizinin içeriği listelenir.

$filesystemName = "my-file-system"
$dirname = "my-directory/"
Get-AzDataLakeGen2ChildItem -Context $ctx -FileSystem $filesystemName -Path $dirname -OutputUserPrincipalName

Aşağıdaki örnek, dizindeki ACLher öğenin , Permissions, Groupve Owner özelliklerini listeler. -FetchProperty özelliği için değerleri almak için ACL parametresi gereklidir.

$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

Not

Kapsayıcının kök dizininin içeriğini listelemek için parametresini atlar -Path .

Dizine dosya yükleme

cmdlet'ini kullanarak bir dosyayı bir dizine New-AzDataLakeGen2Item yükleyin.

Bu örnekte adlı bir dosya adlı upload.txtmy-directorybir dizine yüklenir.

$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

Bu örnek aynı dosyayı karşıya yükler, ancak ardından hedef dosyanın izinlerini, umask'sini, özellik değerlerini ve meta veri değerlerini ayarlar. Bu örnek, bu değerleri konsola da yazdırır.

$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

Not

Kapsayıcının kök dizinine dosya yüklemek için parametresini atlar -Path .

Dosya özelliklerini göster

Bu örnek, cmdlet'ini Get-AzDataLakeGen2Item kullanarak bir dosya alır ve ardından özellik değerlerini konsola yazdırır.

$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

Dosya silme

cmdlet'ini Remove-AzDataLakeGen2Item kullanarak bir dosyayı silin.

Bu örnekte adlı upload.txtbir dosya silinir.

$filesystemName = "my-file-system"
$filepath = "upload.txt"
Remove-AzDataLakeGen2Item  -Context $ctx -FileSystem $filesystemName -Path $filepath

parametresini -Force kullanarak dosyayı istem olmadan kaldırabilirsiniz.

1. Nesilden 2. Nesil Eşlemeye

Aşağıdaki tabloda, Data Lake Storage 1. Nesil için kullanılan cmdlet'lerin Data Lake Storage 2. Nesil için cmdlet'lerle nasıl eşlenmiş olduğu gösterilmektedir.

Not

Azure Data Lake Storage 1. Nesil artık kullanımdan kaldırıldı. Kullanımdan kaldırma duyurusunu buradan görebilirsiniz. Data Lake Storage 1. Nesil kaynaklara artık erişilemez. Özel yardıma ihtiyacınız varsa lütfen bizimle iletişime geçin.

Data Lake Storage 1. Nesil cmdlet'i Data Lake Storage 2. Nesil cmdlet'i Notlar
Get-AzDataLakeStoreChildItem Get-AzDataLakeGen2ChildItem Varsayılan olarak, Get-AzDataLakeGen2ChildItem cmdlet'i yalnızca birinci düzey alt öğeleri listeler. -Recurse parametresi alt öğeleri özyinelemeli olarak listeler.
Get-AzDataLakeStoreItem
Get-AzDataLakeStoreItemAclEntry
Get-AzDataLakeStoreItemOwner
Get-AzDataLakeStoreItemPermission
Get-AzDataLakeGen2Item Get-AzDataLakeGen2Item cmdlet'in çıkış öğeleri şu özelliklere sahiptir: Acl, Sahip, Grup, İzin.
Get-AzDataLakeStoreItemContent Get-AzDataLakeGen2FileContent Get-AzDataLakeGen2FileContent cmdlet'i dosya içeriğini yerel dosyaya indirir.
Move-AzDataLakeStoreItem Move-AzDataLakeGen2Item
New-AzDataLakeStoreItem New-AzDataLakeGen2Item Bu cmdlet, yeni dosya içeriğini yerel bir dosyadan karşıya yükler.
Remove-AzDataLakeStoreItem Remove-AzDataLakeGen2Item
Set-AzDataLakeStoreItemOwner
Set-AzDataLakeStoreItemPermission
Set-AzDataLakeStoreItemAcl
Update-AzDataLakeGen2Item Update-AzDataLakeGen2Item cmdlet'i, yinelemeli olarak değil yalnızca tek bir öğeyi güncelleştirir. Özyinelemeli olarak güncelleştirmek istiyorsanız, Get-AzDataLakeStoreChildItem cmdlet'ini kullanarak öğeleri listeleyin, ardından Update-AzDataLakeGen2Item cmdlet'ine işlem hattı ekleyin.
Test-AzDataLakeStoreItem Get-AzDataLakeGen2Item Get-AzDataLakeGen2Item cmdlet'i, öğe yoksa bir hata bildirir.

Ayrıca bkz.