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
Azure aboneliği. Daha fazla bilgi için bkz . Azure ücretsiz deneme sürümünü edinme.
Hiyerarşik ad alanı etkinleştirilmiş bir depolama hesabı. Oluşturmak için bu yönergeleri izleyin.
.NET Framework 4.7.2 veya üzeri yüklüdür. Daha fazla bilgi için bkz . .NET Framework'i indirme.
PowerShell sürümü
5.1
veya üzeri.
PowerShell modülünü yükleme
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
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.
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
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>
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-system
bir 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-directory
yeniden 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-2
my-subdirectory
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
cmdlet'ini Remove-AzDataLakeGen2Item
kullanarak bir dizini silin.
Bu örnekte adlı my-directory
bir 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.txt
my-directory
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
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-directory
dizinin 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 ACL
her öğenin , Permissions
, Group
ve 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.txt
my-directory
bir 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.txt
bir 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. |