Dela via


Update-AzDataLakeGen2Item

Uppdatera en fil eller katalog för egenskaper, metadata, behörighet, ACL och ägare.

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

Cmdleten Update-AzDataLakeGen2Item uppdaterar en fil eller katalog för egenskaper, metadata, behörighet, ACL och ägare. Den här cmdleten fungerar bara om hierarkisk namnrymd är aktiverad för lagringskontot. Den här typen av konto kan skapas genom att köra cmdleten "New-AzStorageAccount" med "-EnableHierarchicalNamespace $true".

Exempel

Exempel 1: Skapa ett ACL-objekt med 3 ACL-post och uppdatera ACL till alla objekt i ett filsystem rekursivt

$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

Det här kommandot skapar först ett ACL-objekt med 3 acl-post (använd parametern -InputObject för att lägga till acl-post i ett befintligt acl-objekt), hämta sedan alla objekt i ett filsystem och uppdatera acl på objekten.

Exempel 2: Uppdatera alla egenskaper i en fil och visa dem

$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

Det här kommandot uppdaterar alla egenskaper för en fil (ACL, behörighet, ägare, grupp, metadata, egenskap kan uppdateras med alla konbinationer) och visar dem i Powershell-konsolen.

Exempel 3: Lägg till en ACL-post i en katalog

## 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

Det här kommandot hämtar ACL från en katalog, uppdaterar/lägger till en ACL-post och återgår till katalogen. Om ACL-post med samma AccessControlType/EntityId/DefaultScope inte finns lägger du till en ny ACL-post, annars uppdateras behörigheten för befintlig ACL-post.

Parametrar

-Acl

Anger behörigheter för POSIX-åtkomstkontroll för filer och kataloger. Skapa det här objektet med New-AzDataLakeGen2ItemAclObject.

Typ:PSPathAccessControlEntry[]
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Confirm

Uppmanar dig att bekräfta innan du kör cmdleten.

Typ:SwitchParameter
Alias:cf
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Context

Azure Storage-kontextobjekt

Typ:IStorageContext
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-DefaultProfile

Autentiseringsuppgifter, konto, klientorganisation och prenumeration som används för kommunikation med Azure.

Typ:IAzureContextContainer
Alias:AzureRmContext, AzureCredential
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-FileSystem

FileSystem-namn

Typ:String
Position:0
Standardvärde:None
Obligatorisk:True
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-Group

Anger blobens ägande grupp.

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-InputObject

Objektobjekt för Azure Datalake Gen2 som ska uppdateras

Typ:AzureDataLakeGen2Item
Position:Named
Standardvärde:None
Obligatorisk:True
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-Metadata

Anger metadata för katalogen eller filen.

Typ:Hashtable
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Owner

Anger blobens ägare.

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Path

Sökvägen i det angivna filsystemet som ska uppdateras. Kan vara en fil eller katalog i formatet "directory/file.txt" eller "directory1/directory2/". Ange inte den här parametern uppdaterar rotkatalogen för Filsystemet.

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-Permission

Anger POSIX-åtkomstbehörigheter för filägaren, filägargruppen och andra. Varje klass kan beviljas läs-, skriv- eller körningsbehörighet. Symbolisk (rwxrw-rw-) stöds. Den klibbiga biten stöds också och den representeras antingen av bokstaven t eller T på den slutliga teckenplatsen beroende på om körningsbiten för den andra kategorin har angetts eller inte har angetts, avsaknad av t eller T indikerar att fästbiten inte har angetts. Ogiltigt tillsammans med ACL.

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Property

Anger egenskaper för katalogen eller filen. De egenskaper som stöds för filen är: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage, ContentMD5, ContentType. De egenskaper som stöds för katalogen är: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage.

Typ:Hashtable
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-WhatIf

Visar vad som skulle hända om cmdleten kördes. Cmdleten körs inte.

Typ:SwitchParameter
Alias:wi
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

Indata

String

AzureDataLakeGen2Item

IStorageContext

Utdata

AzureDataLakeGen2Item