Aracılığıyla paylaş


Azure Data Lake Storage'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'da ACL'leri yönetmek için PowerShell kullanma.

Referans | 1. Nesil ile 2. Nesil eşlemesi | Geri bildirim ver

Önkoşullar

PowerShell modülünü yükleme

  1. Yüklü PowerShell sürümünün 5.1 veya daha yüksek olduğunu aşağıdaki komutu kullanarak 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.Storage 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ğlanma

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

    Connect-AzAccount
    
  2. Kimliğiniz birden fazla abonelikle ilişkiliyse ve aboneliği seçmeniz istenmiyorsa etkin aboneliğinizi üzerinde çalışmak 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
    

Kapsayıcı oluşturma

Kapsayıcı, dosyalarınız için dosya sistemi görevi görür. New-AzStorageContainer cmdlet'ini kullanarak 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

New-AzDataLakeGen2Item cmdlet'ini 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 Get-AzDataLakeGen2Item cmdlet'ini 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 -Path parametresini atlayın.

Bir dizini yeniden adlandırma veya taşıma

Move-AzDataLakeGen2Item cmdlet'ini kullanarak dizini yeniden adlandırın 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

Komut istemi olmadan üzerine yazmak istiyorsanız -Force parametresini kullanın.

Bu örnek, my-directory adlı bir dizini, my-directory-2'in my-subdirectory adlı alt dizinine taşı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

Remove-AzDataLakeGen2Item cmdlet'ini 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

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

Bu örnekte, my-directory adlı dizinden upload.txt adlı bir 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

Get-AzDataLakeGen2ChildItem cmdlet'ini kullanarak dizinin içeriğini listeleyin. 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 -Path parametresini atlayın.

Dizine dosya yükleme

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

Bu örnek, upload.txt adlı dosyayı my-directory adlı bir dizine yükler.

$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

Dikkat

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

Dosya özelliklerini göster

Bu örnek Get-AzDataLakeGen2Item cmdlet'ini 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

Remove-AzDataLakeGen2Item cmdlet'ini 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.

Birinci Nesilden İkinci Nesile Dönüştürme

Aşağıdaki tabloda, Data Lake Storage 1. Nesil için kullanılan cmdlet'lerin Data Lake Storage cmdlet'leriyle 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 Gen1 cmdlet Data Lake Storage komut kümesi Notlar
Get-AzDataLakeStoreChildItem Get-AzDataLakeGen2ChildItem Varsayılan olarak, Get-AzDataLakeGen2ChildItem cmdlet'i yalnızca birinci düzey alt öğeleri listeler. -Recurse parametresi alt öğeleri tekrarlı olarak listeler.
Get-AzDataLakeStoreItem
Get-AzDataLakeStoreItemAclEntry
Get-AzDataLakeStoreItemOwner (Veri Gölü Mağaza Öğesi Sahibini Al)
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 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, öğeleri Get-AzDataLakeStoreChildItem cmdlet'ini kullanarak listeleyin ve ardından bunları işlem hattıyla Update-AzDataLakeGen2Item cmdlet'ine yönlendirin.
Test-AzDataLakeStoreItem Get-AzDataLakeGen2Item Get-AzDataLakeGen2Item cmdleti, öğe yoksa hata mesajı verir.

Ayrıca bkz.