Polecenie cmdlet Update-AzDataLakeGen2AclRecursive aktualizuje listę ACL rekursywnie na określonej ścieżce.
Lista ACL danych wejściowych scali oryginalną listę ACL: jeśli wpis listy ACL z tym samym parametrem AccessControlType/EntityId/DefaultScope istnieje, zaktualizuj uprawnienie; w przeciwnym razie dodaj nowy wpis listy ACL.
Przykłady
Przykład 1. Ponowne aktualizowanie listy ACL w katalogu głównym systemu plików
To polecenie najpierw tworzy obiekt listy ACL z 3 wpisami listy acl, a następnie aktualizuje listę ACL rekursywnie w katalogu głównym systemu plików.
Przykład 2. Ponowne aktualizowanie listy ACL w katalogu i wznawianie po awarii przy użyciu metody ContinuationToken
$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 :
To polecenie najpierw aktualizuje listę ACL rekursywnie do katalogu i zakończyło się niepowodzeniem, a następnie wznawia działanie funkcji ContinuationToken po usunięciu przez użytkownika pliku, który zakończył się niepowodzeniem.
Przykład 3. Aktualizowanie cyklicznie fragmentu listy ACL według fragmentu
Ten skrypt będzie aktualizować listę ACL rekursywnie na fragmentach katalogu według fragmentu z rozmiarem fragmentu jako BatchSize * MaxBatchCount. Rozmiar fragmentu to 5000 w tym skrycie.
Przykład 4. Ponowne aktualizowanie listy ACL w katalogu i KontynuujOnFailure, a następnie wznawianie po awariach po jednym po jednym
$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
}
To polecenie najpierw aktualizuje listę ACL rekursywnie do katalogu za pomocą polecenia ContinueOnFailure, a niektóre elementy nie powiodły się, a następnie wznowić elementy, które zakończyły się niepowodzeniem, jeden po drugim.
Parametry
-Acl
Lista kontroli dostępu POSIX, która ma być ustawiana rekursywnie dla pliku lub katalogu.
Jeśli rozmiar zestawu danych przekracza rozmiar partii, operacja zostanie podzielona na wiele żądań, aby można było śledzić postęp.
Rozmiar partii powinien należeć do zakresu od 1 do 2000.
Wartość domyślna to 2000.
Ustaw ten parametr, aby ignorować błędy i kontynuować przetwarzanie przy użyciu operacji na innych podrzędnych jednostkach katalogu. Domyślna operacja zakończy się szybko po napotkaniu błędów.
Maksymalna liczba partii, które można wykonać przy pojedynczej zmianie operacji kontroli dostępu. Jeśli rozmiar zestawu danych przekracza wartość MaxBatchCount pomnożoną wartość BatchSize, zostanie zwrócony token kontynuacji.
Ścieżka w określonym systemie plików, która ma być zmieniana rekursywnie.
Może być plikiem lub katalogiem.
W formacie "directory/file.txt" lub "directory1/directory2/".
Pomiń ustawienie tego parametru, aby zmienić listę Acl rekursywnie z katalogu głównego systemu plików.
To polecenie cmdlet obsługuje typowe parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction i -WarningVariable. Aby uzyskać więcej informacji, zobacz about_CommonParameters.
Źródło tej treści można znaleźć na GitHubie, gdzie można także tworzyć i przeglądać problemy oraz pull requesty. Więcej informacji znajdziesz w naszym przewodniku dla współautorów.