본문으로 건너뛰기

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(kr-central-2)
{
project:String // 프로젝트 ID | S3 API에서 project id 값으로 사용
name:String // 버킷 이름 | Object storage에서 유일한 값
type:String // 버킷 유형 | STANDARD
bytes:int // 총 사용량 | 단위: Byte
objectCount:int // 해당 버킷에 속한 오브젝트 개수
createdAt:String // 생성일로 RFC3339 형식 | 예시) 2020-07-01T00:00:00Z
use_encryption:boolean // 버킷 암호화 여부
encryption_type // 암호화 유형 | managed
lastModified:String // 수정일로 RFC3339 형식 | 예시) 2020-07-01T00:00:00Z
storageClass // 스토리지 클래스 | STANDARD
storagePolicy // 스토리지 클래스의 존
acl: [AccessControlList] // 버킷에 대한 접근 권한
}
AccessControlList(kr-central-2)
{
acl : [Permission] // 버킷에 대한 접근 권한
publicAcl : String // 버킷 공개 여부 | deny(기본값): 공개하지 않음, read-only: 읽기 권한 공개
}
DataType설명
accountString프로젝트 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 (kr-central-2)
{
project: String // 프로젝트 ID | S3 API에서 project id 값으로 사용
name: String // 버킷 이름 | Object storage에서 유일한 값
type: String // 버킷 유형 | STANDARD
bytes: int // 총 사용량 | 단위: Byte
objectCount: int // 해당 버킷에 속한 오브젝트 개수
createdAt: String // 생성일로 RFC3339 형식 | 예시) 2020-07-01T00:00:00Z
use_encryption: boolean // 버킷 암호화 여부
encryption_type // 암호화 유형 | managed
lastModified: String // 수정일로 RFC3339 형식 | 예시) 2020-07-01T00:00:00Z
storageClass // 스토리지 클래스 | STANDARD
storagePolicy // 스토리지 클래스의 존
}
DataType설명
projectString프로젝트 ID
- 토큰 발급 시 확인 가능 (토큰 발급 과정에서 사용/확인된 프로젝트 ID)
- S3 API에서 사용
nameString버킷 이름
- Object Storage 내 유일한 값
typeString버킷 유형
- STANDARD(기본값): standard 버킷
bytesInt총 사용량
- 단위: Byte
objectCountInt버킷에 속한 오브젝트의 개수
createdAtString생성일
- 형식: RFC3339
- 예시: 2020-07-01T00:00:00Z
use_encryptionBoolean버킷 암호화 여부
- false(기본값): 암호화하지 않음
- true: 암호화 함
encryption_typeString버킷 암호화 유형
lastModifiedString수정일
- 형식: RFC3339
- 예시: 2020-07-01T00:00:00Z
storageClassString스토리지 클래스
- STANDARD(기본값): standard 버킷
aclAccess Control List버킷 접근 관리 정책
- Model - Access Control List 참고

Model - Simple User

SimpleUser
{
id: String // 사용자 ID. 예시) a0cd4299ed99458f9679c89a27e1a52d
name: String // 사용자 name. 예시) reuben.b@kakkaoenterprise.com
}
DataType설명
idString사용자 고유 ID
- 예시: a0cd4299ed99458f9679c89a27e1a52d
nameStringID
- 예시: 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: 읽기 및 쓰기 권한 공개