Update-AzDataLakeGen2Item
Mettez à jour un fichier ou un répertoire sur les propriétés, les métadonnées, l’autorisation, la liste de contrôle d’accès et le propriétaire.
Syntaxe
Update-AzDataLakeGen2Item
[-FileSystem] <String>
[-Path <String>]
[-Permission <String>]
[-Owner <String>]
[-Group <String>]
[-Property <Hashtable>]
[-Metadata <Hashtable>]
[-Acl <PSPathAccessControlEntry[]>]
[-Context <IStorageContext>]
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Update-AzDataLakeGen2Item
-InputObject <AzureDataLakeGen2Item>
[-Permission <String>]
[-Owner <String>]
[-Group <String>]
[-Property <Hashtable>]
[-Metadata <Hashtable>]
[-Acl <PSPathAccessControlEntry[]>]
[-Context <IStorageContext>]
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
L’applet de commande Update-AzDataLakeGen2Item met à jour un fichier ou un répertoire sur les propriétés, les métadonnées, l’autorisation, la liste de contrôle d’accès et le propriétaire. Cette applet de commande fonctionne uniquement si le Namespace hiérarchique est activé pour le compte de stockage. Ce type de compte peut être créé en exécutant l’applet de commande « New-AzStorageAccount » avec « -EnableHierarchicalNamespace $true ».
Exemples
Exemple 1 : Créer un objet ACL avec 3 entrées de liste de contrôle d’accès et mettre à jour ACL pour tous les éléments d’un système de fichiers de manière récursive
$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -Permission rwx
$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType group -Permission rw- -InputObject $acl
$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType other -Permission "rwt" -InputObject $acl
Get-AzDataLakeGen2ChildItem -FileSystem "filesystem1" -Recurse | Update-AzDataLakeGen2Item -ACL $acl
FileSystem Name: filesystem1
Path IsDirectory Length LastModified Permissions Owner Group
---- ----------- ------ ------------ ----------- ----- -----
dir1 True 2020-03-13 13:07:34Z rwxrw-rwt $superuser $superuser
dir1/file1 False 1024 2020-03-23 09:29:18Z rwxrw-rwt $superuser $superuser
dir2 True 2020-03-23 09:28:36Z rwxrw-rwt $superuser $superuser
Cette commande crée d’abord un objet ACL avec une entrée acl 3 (utilisez le paramètre -InputObject pour ajouter une entrée acl à un objet acl existant), puis obtenez tous les éléments dans un système de fichiers et mettez à jour acl sur les éléments.
Exemple 2 : Mettre à jour toutes les propriétés d’un fichier et les afficher
$file = Update-AzDataLakeGen2Item -FileSystem "filesystem1" -Path "dir1/file1" `
-Acl $acl `
-Property @{"ContentType" = "image/jpeg"; "ContentMD5" = "i727sP7HigloQDsqadNLHw=="; "ContentEncoding" = "UDF8"; "CacheControl" = "READ"; "ContentDisposition" = "True"; "ContentLanguage" = "EN-US"} `
-Metadata @{"tag1" = "value1"; "tag2" = "value2" } `
-Permission rw-rw-rwx `
-Owner '$superuser' `
-Group '$superuser'
$file
FileSystem Name: filesystem1
Path IsDirectory Length LastModified Permissions Owner Group
---- ----------- ------ ------------ ----------- ----- -----
dir1/file1 False 1024 2020-03-23 09:57:33Z rwxrw-rw- $superuser $superuser
$file.ACL
DefaultScope AccessControlType EntityId Permissions
------------ ----------------- -------- -----------
False User rwx
False Group rw-
False Other rw-
$file.Permissions
Owner : Execute, Write, Read
Group : Write, Read
Other : Write, Read
StickyBit : False
ExtendedAcls : False
$file.Properties.Metadata
Key Value
--- -----
tag2 value2
tag1 value1
$file.Properties
LastModified : 3/23/2020 9:57:33 AM +00:00
CreatedOn : 3/23/2020 9:29:18 AM +00:00
Metadata : {[tag2, value2], [tag1, value1]}
CopyCompletedOn : 1/1/0001 12:00:00 AM +00:00
CopyStatusDescription :
CopyId :
CopyProgress :
CopySource :
CopyStatus : Pending
IsIncrementalCopy : False
LeaseDuration : Infinite
LeaseState : Available
LeaseStatus : Unlocked
ContentLength : 1024
ContentType : image/jpeg
ETag : "0x8D7CF109B9878CC"
ContentHash : {139, 189, 187, 176...}
ContentEncoding : UDF8
ContentDisposition : True
ContentLanguage : EN-US
CacheControl : READ
AcceptRanges : bytes
IsServerEncrypted : True
EncryptionKeySha256 :
AccessTier : Cool
ArchiveStatus :
AccessTierChangedOn : 1/1/0001 12:00:00 AM +00:00
Cette commande met à jour toutes les propriétés d’un fichier (ACL, autorisation, propriétaire, groupe, métadonnées, propriété peuvent être mises à jour avec n’importe quelle liaison) et les afficher dans la console PowerShell.
Exemple 3 : Ajouter une entrée de liste de contrôle d’accès à un répertoire
## Get the origin ACL
$acl = (Get-AzDataLakeGen2Item -FileSystem "filesystem1" -Path 'dir1/dir3/').ACL
# Update permission of a new ACL entry (if ACL entry with same AccessControlType/EntityId/DefaultScope not exist, will add a new ACL entry, else update permission of existing ACL entry)
$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityId $id -Permission rw- -InputObject $acl
# set the new acl to the directory
Update-AzDataLakeGen2Item -FileSystem "filesystem1" -Path 'dir1/dir3/' -ACL $acl
FileSystem Name: filesystem1
Path IsDirectory Length LastModified Permissions Owner Group
---- ----------- ------ ------------ ----------- ----- -----
dir1/dir3 True 2020-03-23 09:34:31Z rwxrw-rw-+ $superuser $superuser
Cette commande obtient la liste de contrôle d’accès à partir d’un répertoire, met à jour/ajoute une entrée de liste de contrôle d’accès et revient au répertoire. Si l’entrée ACL avec le même AccessControlType/EntityId/DefaultScope n’existe pas, ajoutez une nouvelle entrée de liste de contrôle d’accès, sinon l’autorisation de mise à jour de l’entrée ACL existante.
Paramètres
-Acl
Définit les droits de contrôle d’accès POSIX sur les fichiers et les répertoires. Créez cet objet avec New-AzDataLakeGen2ItemAclObject.
Type: | PSPathAccessControlEntry[] |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Confirm
Vous demande une confirmation avant d’exécuter l’applet de commande.
Type: | SwitchParameter |
Alias: | cf |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Context
objet de contexte Stockage Azure
Type: | IStorageContext |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-DefaultProfile
Informations d’identification, compte, locataire et abonnement utilisés pour la communication avec Azure.
Type: | IAzureContextContainer |
Alias: | AzureRmContext, AzureCredential |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-FileSystem
Nom du système de fichiers
Type: | String |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-Group
Définit le groupe propriétaire de l’objet blob.
Type: | String |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-InputObject
Objet d’élément Azure Datalake Gen2 à mettre à jour
Type: | AzureDataLakeGen2Item |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-Metadata
Spécifie les métadonnées du répertoire ou du fichier.
Type: | Hashtable |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Owner
Définit le propriétaire de l’objet blob.
Type: | String |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Path
Chemin d’accès dans le système de fichiers spécifié qui doit être mis à jour. Il peut s’agir d’un fichier ou d’un répertoire au format « directory/file.txt » ou « directory1/directory2/ ». Vous ne spécifiez pas ce paramètre pour mettre à jour le répertoire racine du système de fichiers.
Type: | String |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-Permission
Définit les autorisations d’accès POSIX pour le propriétaire du fichier, le groupe propriétaire de fichiers et d’autres utilisateurs. Chaque classe peut recevoir une autorisation de lecture, d’écriture ou d’exécution. Symbolique (rwxrw-rw-) est pris en charge. Le bit collant est également pris en charge et est représenté par la lettre t ou T dans le caractère final, selon que le bit d’exécution pour les autres catégories est défini ou non défini respectivement, l’absence de t ou T indique que le bit collant n’est pas défini. Non valide conjointement avec la liste de contrôle d’accès.
Type: | String |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Property
Spécifie les propriétés du répertoire ou du fichier. Les propriétés prises en charge pour le fichier sont : CacheControl, ContentDisposition, ContentEncoding, ContentLanguage, ContentMD5, ContentType. Les propriétés prises en charge pour le répertoire sont : CacheControl, ContentDisposition, ContentEncoding, ContentLanguage.
Type: | Hashtable |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-WhatIf
Montre ce qui se passe en cas d’exécution de l’applet de commande. L’applet de commande n’est pas exécutée.
Type: | SwitchParameter |
Alias: | wi |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |