본문으로 건너뛰기

API 개요

Object Storage API는 코드 기반의 프로그래밍 방식으로 자원들을 관리하기 위한 인터페이스입니다.
Object Storage에서 제공하는 API를 활용 시, 많은 양의 버킷 및 객체 제어 또는 반복적이고 자동화된 작업 등 콘솔로 수행하기 어려운 작업을 처리할 수 있습니다. REST API, Openstack Swift Client를 통해 코드 기반으로 카카오클라우드의 Object Storage를 사용할 수 있습니다.

안내
  • API 요청에 대한 응답은 JSON 형태로 제공합니다.
  • API 사용을 위해서는 액세스 키와 사용자 인증 토큰(API 인증 토큰)이 필요합니다.
  • API 사용 전 사용자 액세스 키를 먼저 생성 후, 이를 통해 사용자 인증 토큰(API 인증 토큰)을 받아야 합니다.
  • Object Storage API 사용법에 대한 예제는 CURL 클라이언트로 작성되어 있습니다. Curl에 대한 자세한 설명은 CURL 가이드에서 참조하시길 바랍니다.

API 사용 준비

API를 호출하기 위해 필요한 사전 작업은 API 사용 준비 문서를 참고하시기 바랍니다.

API Model

Object Storage의 API Model은 다음의 5개 요소로 구성됩니다.

Model - Bucket

Bucket
{
account: String // project ID | Swift API에서 account 값으로 사용
name: String // 버킷 이름 | object storage에서 유일한 값
type: String // 버킷 유형 | hot | cold
bytes: int // 총 사용량 | 단위: Byte
objectCount: int // 해당 버킷에 속한 오브젝트 개수
policyCount: int // 해당 버킷의 라이프사이클이 적용된 정책의 개수
createdAt: String // 생성일로 RFC3339 형식 | 예시)2020-07-01T00:00:00Z
lastModified: String // 수정일로 RFC3339 형식 | 예시)2020-07-01T00:00:00Z
owner: [SimpleUser] // 버킷 생성자 | 생성자는 버킷에 대한 Admin 권한 가짐
acl: [AccessControlList] // 버킷에 대한 접근 권한
use_encryption: boolean // 버킷 암호화 여부
}
SimpleUser
{
id: String // 사용자 ID. 예시) a0cd4299ed99458f9679c89a27e1a52d
name: String // 사용자 name. 예시) reuben.b@kakkaoenterprise.com
}
AccessControlList
{
acl : [Permission] // 버킷에 대한 접근 권한
publicAcl : String // 버킷 공개 여부 | Deny(기본값): 공개하지 않음, Read-Only: 읽기 권한 공개
}
Permission
{
user : SimplelUser // 버킷에 접근할 수 있는 사용자
permission: String // 버킷 접근 권한 | read-only, read-write
}
DataType설명
accountStringProject ID
- 토큰 발급 시 확인 가능 (토큰 발급 과정에서 사용/확인된 프로젝트 ID)
- Swift API에서 Account 값으로 사용
nameString버킷 이름
- Object Storage 내 유일한 값
typeString버킷 유형
- Standard
bytesInt총 사용량
- 단위: Byte
objectCountInt버킷에 속한 오브젝트의 개수
policyCountInt해당 버킷의 라이프사이클이 적용된 정책의 개수
createdAtString생성일
- 형식: RFC3339
- 예시: 2020-07-01T00:00:00Z
lastModifiedString수정일
- 형식: RFC3339
- 예시: 2020-07-01T00:00:00Z
ownerSimpleUser버킷 생성자
- 생성자는 버킷에 대한 Admin 권한 가짐
aclAccessControlList접근 권한 정보
use_encryptionBoolean버킷 암호화 여부
- false(기본값): 암호화하지 않음
- true: 암호화 함

Model - Simple Bucket

SimpleBucket
{
account: String // Project ID | Swift API에서 account 값으로 사용
name: String // 버킷 이름 | Object storage에서 유일한 값
type: String // 버킷 유형 | hot/cold
bytes: int // 총 사용량 | 단위: Byte
objectCount: int // 해당 버킷에 속한 오브젝트 개수
policyCount: int // 해당 버킷의 라이프사이클이 적용된 정책의 개수
createdAt: String // 생성일로 RFC3339 형식 | 예시) 2020-07-01T00:00:00Z
lastModified: String // 수정일로 RFC3339 형식 | 예시) 2020-07-01T00:00:00Z
owner: [SimpleUser] // 버킷 생성자 | 해당 버킷에 대해 생성자는 admin 권한을 가짐
use_encryption: boolean // 버킷 암호화 여부
}
DataType설명
accountStringProject ID
- 토큰 발급 시 확인 가능 (토큰 발급 과정에서 사용/확인된 프로젝트 ID)
- Swift API에서 Account 값으로 사용
nameString버킷 이름
- Object Storage 내 유일한 값
typeString버킷 유형
- Hot(기본값): Hot 버킷
- Cold(지원 예정): Cold 버킷
bytesInt총 사용량
- 단위: Byte
objectCountInt버킷에 속한 오브젝트의 개수
policyCountInt해당 버킷의 라이프사이클이 적용된 정책의 개수
createdAtString생성일
- 형식: RFC3339
- 예시: 2020-07-01T00:00:00Z
lastModifiedString수정일
- 형식: RFC3339
- 예시: 2020-07-01T00:00:00Z
ownerSimpleUser버킷 생성자
- 생성자는 버킷에 대한 Admin 권한 가짐
use_encryptionBoolean버킷 암호화 여부
- false(기본값): 암호화하지 않음
- true: 암호화 함

Model - Simple User

SimpleUser
{
id: String // 사용자 ID. 예시) a0cd4299ed99458f9679c89a27e1a52d
name: String // 사용자 name. 예시) reuben.b@kakkaoenterprise.com
}
DataType설명
idString사용자 고유 ID
- 예시: a0cd4299ed99458f9679c89a27e1a52d
nameString아이디
- 예시: username@domain.com

Model - Access Control List

DataType설명
acl[Permission]버킷에 대한 접근 권한
- 리스트(list)로 작성 가능
- Model - Permission 참고
publicAclString버킷 공개 여부
- Deny(기본값): 공개하지 않음
- Read-Only: 읽기 권한 공개

Model - Permission

DataType설명
userSimpleUser버킷에 접근할 수 있는 사용자
- Model - Simple User 참고
permissionString버킷 접근 권한
- Read-Only: 읽기 권한 공개
- Read-Write: 읽기 및 쓰기 권한 공개