O cmdlet Update-AzDataLakeGen2AclRecursive atualiza a ACL recursivamente no caminho especificado.
A ACL de entrada mesclará a ACL original: Se a entrada da ACL com o mesmo AccessControlType/EntityId/DefaultScope existir, atualize a permissão; caso contrário, adicione uma nova entrada ACL.
Exemplos
Exemplo 1: Atualizar a ACL recursivamente em um diretório raiz do sistema de arquivos
Este comando primeiro cria um objeto ACL com 3 entradas acl e, em seguida, atualiza a ACL recursivamente em um diretório raiz de um sistema de arquivos.
Exemplo 2: Atualizar a ACL recursivamente em um diretório e retomar da falha com 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 :
Este comando primeiro atualiza a ACL recursivamente para um diretório e falhou e, em seguida, retoma com ContinuationToken após o usuário corrigir o arquivo com falha.
Exemplo 3: Atualizar a ACL recursivamente bloco por bloco
Este script atualizará a ACL recursivamente no diretório bloco por bloco, com tamanho de bloco como BatchSize * MaxBatchCount. O tamanho do bloco é 5000 neste script.
Exemplo 4: Atualize a ACL recursivamente em um diretório e ContinueOnFailure e, em seguida, retome as falhas uma a uma
$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
}
Este comando primeiro atualiza a ACL recursivamente para um diretório com ContinueOnFailure, e alguns itens falharam, em seguida, retomar os itens com falha um a um.
Parâmetros
-Acl
A lista de controle de acesso POSIX para definir recursivamente para o arquivo ou diretório.
Se o tamanho do conjunto de dados exceder o tamanho do lote, a operação será dividida em várias solicitações para que o progresso possa ser rastreado.
O tamanho do lote deve estar compreendido entre 1 e 2000.
O padrão é 2000.
Defina esse parâmetro para ignorar falhas e continuar o processamento com a operação em outras subentidades do diretório. Por padrão, a operação será encerrada rapidamente ao encontrar falhas.
Número máximo de lotes que uma única operação de controle de acesso de alteração pode executar. Se o tamanho do conjunto de dados exceder MaxBatchCount multiplicar BatchSize, o token de continuação será retornado.
O caminho no FileSystem especificado que deve alterar Acl recursivamente.
Pode ser um arquivo ou diretório.
No formato 'directory/file.txt' ou 'directory1/directory2/'.
Ignore defina esse parâmetro para alterar Acl recursivamente do diretório raiz do sistema de arquivos.
Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.
A fonte deste conteúdo pode ser encontrada no GitHub, onde também pode criar e rever issues e pull requests. Para mais informações, consulte o nosso guia para colaboradores.