API | 작업명 | 작업 설명 |
버킷 ACL 설정 | 지정 버킷의 액세스 권한 제어 리스트(ACL) 설정 | |
버킷 ACL 조회 | 지정 버킷의 액세스 권한 제어 리스트(ACL) 조회 |
API | 작업명 | 작업 설명 |
객체 ACL 설정 | Bucket의 특정 Object(파일/객체)의 ACL 설정 | |
객체 ACL 조회 | Object(파일/객체)의 ACL 조회 |
func (s *BucketService) PutACL(ctx context.Context, opt *BucketPutACLOptions) (*Response, error)
// 1. 요청 헤더를 통해 Bucket ACL 설정opt := &cos.BucketPutACLOptions{Header: &cos.ACLHeaderOptions{//private, public-read, public-read-writeXCosACL: "private",},}_, err := client.Bucket.PutACL(context.Background(), opt)if err != nil {panic(err)}// 2. 요청 본문을 통해 Bucket ACL 설정opt = &cos.BucketPutACLOptions{Body: &cos.ACLXml{Owner: &cos.Owner{ID: "qcs::cam::uin/100000000001:uin/100000000001",},AccessControlList: []cos.ACLGrant{{Grantee: &cos.ACLGrantee{// Type의 옵션: "Group", "CanonicalUser"Type: "RootAccount",ID: "qcs::cam::uin/100000760461:uin/100000760461",},// Permission의 옵션: "WRITE", "FULL_CONTROL"Permission: "FULL_CONTROL",},},},}_, err = client.Bucket.PutACL(context.Background(), opt)if err != nil {panic(err)}
type ACLHeaderOptions struct {XCosACL stringXCosGrantRead stringXCosGrantWrite stringXCosGrantFullControl string}
매개변수 이름 | 매개변수 설명 | 유형 | 필수 입력 여부 |
XCosACL | Bucket의 ACL 설정. 예: private, public-read, public-read-write | string | 아니요 |
XCosGrantFullControl | 지정 계정에 Bucket에 대한 읽기/쓰기 권한 부여. 포맷: id=" ",id=" ", 서브 계정에 권한을 부여해야 하는 경우의 포맷: id="qcs::cam::uin/{OwnerUin}:uin/{SubUin}", 루트 계정에 권한을 부여해야 하는 경우의 포맷: id="qcs::cam::uin/{OwnerUin}:uin/{OwnerUin}". 예: id="qcs::cam::uin/100000000001:uin/100000000011",id="qcs::cam::uin/100000000001:uin/100000000001" | string | 아니요 |
XCosGrantRead | 지정 계정에 Bucket에 대한 읽기 권한 부여. 포맷: id=" ",id=" ", 서브 계정에 권한을 부여해야 하는 경우의 포맷: id="qcs::cam::uin/{OwnerUin}:uin/{SubUin}", 루트 계정에 권한을 부여해야 하는 경우의 포맷: id="qcs::cam::uin/{OwnerUin}:uin/{OwnerUin}". 예: id="qcs::cam::uin/100000000001:uin/100000000011",id="qcs::cam::uin/100000000001:uin/100000000001" | string | 아니요 |
XCosGrantWrite | 지정 계정에 Bucket에 대한 쓰기 권한 부여. 포맷: id=" ",id=" ", 서브 계정에 권한을 부여해야 하는 경우의 포맷: id="qcs::cam::uin/{OwnerUin}:uin/{SubUin}", 루트 계정에 권한을 부여해야 하는 경우의 포맷: id="qcs::cam::uin/{OwnerUin}:uin/{OwnerUin}". 예: id="qcs::cam::uin/100000000001:uin/100000000011",id="qcs::cam::uin/100000000001:uin/100000000001" | string | 아니요 |
ACLXML | 지정 계정에 Bucket에 대한 액세스 권한 부여. 자세한 포맷은 GET Bucket acl 반환 결과 설명 참조 | struct | 아니요 |
func (s *BucketService) GetACL(ctx context.Context) (*BucketGetACLResult, *Response, error)
_, _, err := client.Bucket.GetACL(context.Background())if err != nil {panic(err)}
type ACLXml struct {Owner *OwnerAccessControlList []ACLGrant}type Owner struct {ID stringDisplayName string}type ACLGrant struct {Grantee *ACLGranteePermission string}type ACLGrantee struct {Type stringID stringDisplayName stringUIN string}
매개변수 이름 | 매개변수 설명 | 유형 |
Owner | DisplayName, ID를 포함한 Bucket 소유자 정보 | struct |
AccessControlList | Grantee, Permission을 포함한 Bucket 권한 부여자 정보 | struct |
Grantee | DisplayName, Type, ID, UIN을 포함한 권한 부여자 정보 | struct |
Type | 권한 부여자 유형. CanonicalUser 또는 Group | string |
ID | Type이 CanonicalUser인 경우 해당 권한 부여자의 ID | string |
DisplayName | 권한 부여자의 이름 | string |
UIN | Type이 Group인 경우 해당 권한 부여자의 UIN | string |
Permission | 부여자가 가지고 있는 Bucket의 권한. 옵션값: FULL_CONTROL(읽기/쓰기 권한), WRITE(쓰기 권한), READ(읽기 권한) | string |
func (s *ObjectService) PutACL(ctx context.Context, key string, opt *ObjectPutACLOptions) (*Response, error)
// 1. 요청 헤더를 통해 설정opt := &cos.ObjectPutACLOptions{Header: &cos.ACLHeaderOptions{XCosACL: "private",},}key := "exampleobject"_, err := client.Object.PutACL(context.Background(), key, opt)if err != nil {panic(err)}// 2. 요청 본문을 통해 설정opt = &cos.ObjectPutACLOptions{Body: &cos.ACLXml{Owner: &cos.Owner{ID: "qcs::cam::uin/100000000001:uin/100000000001",},AccessControlList: []cos.ACLGrant{{Grantee: &cos.ACLGrantee{Type: "RootAccount",ID: "qcs::cam::uin/100000760461:uin/100000760461",},Permission: "FULL_CONTROL",},},},}_, err = client.Object.PutACL(context.Background(), key, opt)if err != nil {panic(err)}
type ACLHeaderOptions struct {XCosACL stringXCosGrantRead stringXCosGrantWrite stringXCosGrantFullControl string}
매개변수 이름 | 매개변수 설명 | 유형 | 필수 입력 여부 |
key | 객체 키(Key)는 객체의 버킷 내 고유 식별자. 예: 객체의 액세스 도메인 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg에서 객체 키는 doc/pic.jpg임 | string | 예 |
XCosACL | Object의 ACL 설정. 예: private, public-read | string | 아니요 |
XCosGrantFullControl | 권한을 부여받은 계정에 모든 권한 부여. 포맷: id="[OwnerUin]" | string | 아니요 |
XCosGrantRead | 권한을 부여받은 계정에 읽기 권한 부여. 포맷: id="[OwnerUin]" | string | 아니요 |
ACLXML | 지정 계정에 Bucket 액세스 권한 부여. 자세한 포맷은 get object acl 반환 결과 설명 참조 | struct | 아니요 |
func (s *ObjectService) GetACL(ctx context.Context, key string) (*ObjectGetACLResult, *Response, error)
key := "exampleobject"_, _, err := client.Object.GetACL(context.Background(), key)if err != nil {panic(err)}
매개변수 이름 | 매개변수 설명 | 유형 | 필수 입력 여부 |
key | 객체 키(Key)는 객체의 버킷 내 고유 식별자. 예: 객체의 액세스 도메인 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg에서 객체 키는 doc/pic.jpg임 | string | 예 |
type ACLXml struct {Owner *OwnerAccessControlList []ACLGrant}type Owner struct {ID stringDisplayName string}type ACLGrant struct {Grantee *ACLGranteePermission string}type ACLGrantee struct {Type stringID stringDisplayName stringUIN string}
매개변수 이름 | 매개변수 설명 | 유형 |
Owner | DisplayName, ID를 포함한 Bucket 소유자 정보 | struct |
AccessControlList | Grantee, Permission을 포함한 Bucket 권한 부여자 정보 | struct |
Grantee | DisplayName, Type, ID, UIN을 포함한 권한 부여자 정보 | struct |
Type | 권한 부여자 유형. CanonicalUser 또는 Group | string |
ID | Type이 CanonicalUser인 경우 해당 권한 부여자의 ID | string |
DisplayName | 권한 부여자의 이름 | string |
UIN | Type이 Group인 경우 해당 권한 부여자의 UIN | string |
Permission | 부여자가 가지고 있는 Bucket의 권한. 옵션값: FULL_CONTROL(읽기/쓰기 권한), WRITE(쓰기 권한), READ(읽기 권한) | string |
피드백