Update-AzDataLakeGen2Item

Perbarui file atau direktori pada properti, metadata, izin, ACL, dan pemilik.

Sintaks

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

Deskripsi

Cmdlet Update-AzDataLakeGen2Item memperbarui file atau direktori pada properti, metadata, izin, ACL, dan pemilik. Cmdlet ini hanya berfungsi jika Namespace Hierarki diaktifkan untuk akun Penyimpanan. Akun semacam ini dapat dibuat dengan menjalankan cmdlet "New-AzStorageAccount" dengan "-EnableHierarchicalNamespace $true".

Contoh

Contoh 1: Buat objek ACL dengan entri 3 ACL, dan perbarui ACL ke semua item dalam Filesystem secara rekursif

$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

Perintah ini pertama-tama membuat objek ACL dengan entri 3 acl (gunakan parameter -InputObject untuk menambahkan entri acl ke objek acl yang ada), lalu mendapatkan semua item dalam sistem file dan memperbarui acl pada item.

Contoh 2: Memperbarui semua properti pada file, dan menampilkannya

$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

Perintah ini memperbarui semua properti pada file (ACL, izin, pemilik, grup, metadata, properti dapat diperbarui dengan konsol apa pun), dan menampilkannya di konsol Powershell.

Contoh 3: Menambahkan entri ACL ke direktori

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

Perintah ini mendapatkan ACL dari direktori, memperbarui/menambahkan entri ACL, dan mengatur kembali ke direktori. Jika entri ACL dengan AccessControlType/EntityId/DefaultScope yang sama tidak ada, akan menambahkan entri ACL baru, atau memperbarui izin entri ACL yang ada.

Parameter

-Acl

Mengatur hak kontrol akses POSIX pada file dan direktori. Buat objek ini dengan New-AzDataLakeGen2ItemAclObject.

Type:PSPathAccessControlEntry[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Meminta Anda mengonfirmasi sebelum menjalankan cmdlet.

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

-Context

Objek Konteks Azure Storage

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

-DefaultProfile

Kredensial, akun, penyewa, dan langganan yang digunakan untuk komunikasi dengan Azure.

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

-FileSystem

Nama FileSystem

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

-Group

Mengatur grup pemilik blob.

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

-InputObject

Objek Item Azure Datalake Gen2 untuk diperbarui

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

-Metadata

Menentukan metadata untuk direktori atau file.

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

-Owner

Mengatur pemilik blob.

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

-Path

Jalur dalam Sistem File yang ditentukan yang harus diperbarui. Dapat berupa file atau direktori Dalam format 'directory/file.txt' atau 'directory1/directory2/'. Tidak menentukan parameter ini akan memperbarui direktori akar Sistem File.

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

-Permission

Mengatur izin akses POSIX untuk pemilik file, grup pemilik file, dan lainnya. Setiap kelas dapat diberikan izin baca, tulis, atau jalankan. Simbolis (rwxrw-rw-) didukung. Bit lengket juga didukung dan diwakili baik oleh huruf t atau T di tempat karakter akhir tergantung pada apakah bit eksekusi untuk kategori lain diatur atau tidak diatur masing-masing, tidak adanya t atau T menunjukkan bit lengket tidak diatur. Tidak valid bersama dengan ACL.

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

-Property

Menentukan properti untuk direktori atau file. Properti yang didukung untuk file adalah: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage, ContentMD5, ContentType. Properti yang didukung untuk direktori adalah: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage.

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

-WhatIf

Menunjukkan apa yang akan terjadi jika cmdlet berjalan. Cmdlet tidak dijalankan.

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

Input

String

AzureDataLakeGen2Item

IStorageContext

Output

AzureDataLakeGen2Item