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.

Syntax

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 l’espace de noms hiérarchique est activé pour le compte Stockage. Ce type de compte peut être créé en exécutant l’applet de commande « New-Az Stockage Account » 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
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Vous demande une confirmation avant d’exécuter l’applet de commande.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Context

objet de contexte Stockage Azure

Type:IStorageContext
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-DefaultProfile

Informations d’identification, compte, locataire et abonnement utilisés pour la communication avec Azure.

Type:IAzureContextContainer
Aliases:AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FileSystem

Nom du système de fichiers

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Group

Définit le groupe propriétaire de l’objet blob.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Objet d’élément Azure Datalake Gen2 à mettre à jour

Type:AzureDataLakeGen2Item
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Metadata

Spécifie les métadonnées du répertoire ou du fichier.

Type:Hashtable
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Owner

Définit le propriétaire de l’objet blob.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Aliases:wi
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entrées

String

AzureDataLakeGen2Item

IStorageContext

Sorties

AzureDataLakeGen2Item