다음을 통해 공유


Update-AzDataLakeGen2Item

속성, 메타데이터, 권한, ACL 및 소유자에 대한 파일 또는 디렉터리를 업데이트합니다.

구문

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

Update-AzDataLakeGen2Item cmdlet은 속성, 메타데이터, 권한, ACL 및 소유자에 대한 파일 또는 디렉터리를 업데이트합니다. 이 cmdlet은 스토리지 계정에 대해 계층적 Namespace 사용하도록 설정된 경우에만 작동합니다. 이러한 종류의 계정은 "-EnableHierarchicalNamespace $true"가 있는 "New-AzStorageAccount" cmdlet을 실행하여 만들 수 있습니다.

예제

예제 1: ACL 항목이 3개인 ACL 개체를 만들고 파일 시스템의 모든 항목으로 ACL을 재귀적으로 업데이트합니다.

$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

이 명령은 먼저 3개의 acl 항목이 있는 ACL 개체를 만든 다음(-InputObject 매개 변수를 사용하여 기존 acl 개체에 acl 항목을 추가), 파일 시스템의 모든 항목을 가져오고 항목에 대한 acl을 업데이트합니다.

예제 2: 파일의 모든 속성을 업데이트하고 표시합니다.

$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

이 명령은 파일의 모든 속성(ACL, 권한, 소유자, 그룹, 메타데이터, 속성을 모든 바인딩으로 업데이트할 수 있음)을 업데이트하고 Powershell 콘솔에 표시합니다.

예제 3: 디렉터리에 ACL 항목 추가

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

이 명령은 디렉터리에서 ACL을 가져오고, ACL 항목을 업데이트/추가하고, 디렉터리로 다시 설정합니다. AccessControlType/EntityId/DefaultScope가 동일한 ACL 항목이 없는 경우 새 ACL 항목을 추가합니다. 그렇지 않으면 기존 ACL 항목의 권한을 업데이트합니다.

매개 변수

-Acl

파일 및 디렉터리에 대한 POSIX 액세스 제어 권한을 설정합니다. New-AzDataLakeGen2ItemAclObject를 사용하여 이 개체를 만듭니다.

형식:PSPathAccessControlEntry[]
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Confirm

cmdlet을 실행하기 전에 확인 메시지가 표시됩니다.

형식:SwitchParameter
별칭:cf
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Context

Azure Storage 컨텍스트 개체

형식:IStorageContext
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-DefaultProfile

Azure와의 통신에 사용되는 자격 증명, 계정, 테넌트 및 구독입니다.

형식:IAzureContextContainer
별칭:AzureRmContext, AzureCredential
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-FileSystem

FileSystem 이름

형식:String
Position:0
Default value:None
필수:True
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-Group

Blob의 소유 그룹을 설정합니다.

형식:String
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-InputObject

업데이트할 Azure Datalake Gen2 항목 개체

형식:AzureDataLakeGen2Item
Position:Named
Default value:None
필수:True
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-Metadata

디렉터리 또는 파일에 대한 메타데이터를 지정합니다.

형식:Hashtable
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Owner

Blob의 소유자를 설정합니다.

형식:String
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Path

업데이트해야 하는 지정된 파일 시스템의 경로입니다. 'directory/file.txt' 또는 'directory1/directory2/' 형식의 파일 또는 디렉터리일 수 있습니다. 이 매개 변수를 지정하지 않으면 Filesystem의 루트 디렉터리가 업데이트됩니다.

형식:String
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-Permission

파일 소유자, 파일 소유 그룹 등에 대한 POSIX 액세스 권한을 설정합니다. 각 클래스에는 읽기, 쓰기 또는 실행 권한이 부여될 수 있습니다. 기호(rwxrw-rw-)가 지원됩니다. 고정 비트도 지원되며 다른 범주의 실행 비트가 각각 설정되었는지 여부에 따라 최종 문자 위치의 t 또는 T로 표현되며 t 또는 T가 없는 경우 고정 비트가 설정되지 않음을 나타냅니다. ACL과 함께 잘못되었습니다.

형식:String
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Property

디렉터리 또는 파일의 속성을 지정합니다. 파일에 지원되는 속성은 CacheControl, ContentDisposition, ContentEncoding, ContentLanguage, ContentMD5, ContentType입니다. 디렉터리에 지원되는 속성은 CacheControl, ContentDisposition, ContentEncoding, ContentLanguage입니다.

형식:Hashtable
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-WhatIf

cmdlet이 실행될 경우 결과 동작을 표시합니다. cmdlet이 실행되지 않습니다.

형식:SwitchParameter
별칭:wi
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

입력

String

AzureDataLakeGen2Item

IStorageContext

출력

AzureDataLakeGen2Item