Update-AzDataLakeGen2AclRecursive cmdlet'i ACL'yi belirtilen yolda özyinelemeli olarak güncelleştirir.
Giriş ACL'si özgün ACL'yi birleştirir: Aynı AccessControlType/EntityId/DefaultScope ile ACL girişi varsa, güncelleştirme izni; aksi halde yeni bir ACL girişi ekleyin.
Örnekler
Örnek 1: ACL'i dosya sisteminin kök dizininde özyinelemeli olarak güncelleştirme
Bu komut önce 3 acl girişi olan bir ACL nesnesi oluşturur, ardından ACL'yi bir dosya sisteminin kök dizininde özyinelemeli olarak güncelleştirir.
Örnek 2: Bir dizinde ACL'yi özyinelemeli olarak güncelleştirme ve ContinuationToken ile hatadan devam etme
$result = Update-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -Context $ctx
$result
FailedEntries : {dir1/dir2/file4}
TotalDirectoriesSuccessfulCount : 500
TotalFilesSuccessfulCount : 2500
TotalFailureCount : 1
ContinuationToken : VBaHi5TfyO2ai1wYTRhIL2FjbGNibjA2c3RmATAxRDVEN0UzRENFQzZCRTAvYWRsc3Rlc3QyATAxRDY2M0ZCQTZBN0JGQTkvZGlyMC9kaXIxL2ZpbGUzFgAAAA==
$result.FailedEntries
Name IsDirectory ErrorMessage
---- ----------- ------------
dir0/dir2/file4 False This request is not authorized to perform this operation using this permission.
# user need fix the failed item , then can resume with ContinuationToken
$result = Update-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -ContinuationToken $result.ContinuationToken -Context $ctx
$result
FailedEntries :
TotalDirectoriesSuccessfulCount : 100
TotalFilesSuccessfulCount : 1000
TotalFailureCount : 0
ContinuationToken :
Bu komut önce ACL'yi özyinelemeli olarak bir dizine güncelleştirir ve başarısız olur, ardından kullanıcı başarısız dosyayı düzelttikte ContinuationToken ile devam eder.
Örnek 3: ACL'yi öbeklere göre özyinelemeli olarak güncelleştirme
Bu betik, ACL'yi dizin öbeklerinde öbeklere göre özyinelemeli olarak, öbek boyutu BatchSize * MaxBatchCount olarak güncelleştirir. Bu betikte öbek boyutu 5000'dir.
Örnek 4: Bir dizinde ve ContinueOnFailure'da ACL'yi özyinelemeli olarak güncelleştirin, ardından hatalardan tek tek devam edin
$result = Update-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -ContinueOnFailure -Context $ctx
$result
FailedEntries : {dir0/dir1/file1, dir0/dir2/file4}
TotalDirectoriesSuccessfulCount : 100
TotalFilesSuccessfulCount : 500
TotalFailureCount : 2
ContinuationToken : VBaHi5TfyO2ai1wYTRhIL2FjbGNibjA2c3RmATAxRDVEN0UzRENFQzZCRTAvYWRsc3Rlc3QyATAxRDY2M0ZCQTZBN0JGQTkvZGlyMC9kaXIxL2ZpbGUzFgAAAA==
$result.FailedEntries
Name IsDirectory ErrorMessage
---- ----------- ------------
dir0/dir1/file1 False This request is not authorized to perform this operation using this permission.
dir0/dir2/file4 False This request is not authorized to perform this operation using this permission.
# user need fix the failed item , then can resume with ContinuationToken
foreach ($path in $result.FailedEntries.Name)
{
# user code to fix failed entry in $path
#set ACL again
Set-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path $path -Acl $acl -Context $ctx
}
Bu komut önce ACL'yi ContinueOnFailure ile bir dizine özyinelemeli olarak güncelleştirir ve bazı öğeler başarısız olur, ardından başarısız öğeleri tek tek sürdürür.
Parametreler
-Acl
Dosya veya dizin için özyinelemeli olarak ayarlanacağı POSIX erişim denetimi listesi.
Veri kümesi boyutu toplu iş boyutunu aşarsa, ilerlemenin izlenebilmesi için işlem birden çok isteğe bölünür.
Toplu iş boyutu 1 ile 2000 arasında olmalıdır.
Varsayılan değer 2000'dir.
Hataları yoksaymak ve dizinin diğer alt varlıklarında işlemle işlemeye devam etmek için bu parametreyi ayarlayın. Varsayılan olarak işlem hatalarla karşılaşıldığında hızla sonlandırılır.
Tek değişiklik Access Control işlemin yürütebileceği en fazla toplu işlem sayısı. Veri kümesi boyutu MaxBatchCount batchSize çarpmasını aşarsa, devamlılık belirteci döndürülecektir.
Belirtilen FileSystem'da Acl'yi yinelemeli olarak değiştirecek yol.
Dosya veya dizin olabilir.
'directory/file.txt' veya 'directory1/directory2/' biçiminde.
Acl'yi Dosya Sisteminin kök dizininden özyinelemeli olarak değiştirmek için bu parametreyi ayarlamayı atlayın.
Bu cmdlet yaygın parametreleri destekler: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction ve -WarningVariable. Daha fazla bilgi için bkz. about_CommonParameters.
Bu içeriğin kaynağı GitHub'da bulunabilir; burada ayrıca sorunları ve çekme isteklerini oluşturup gözden geçirebilirsiniz. Daha fazla bilgi için katkıda bulunan kılavuzumuzu inceleyin.