카카오클라우드의 Object Storage는 Swift API와 호환성을 제공합니다.
제공되는 기능 목록
Swift API 지원 목록
"카카오 클라우드는 OpenStack Swift API 스펙을 준수하나, 서비스 안정성과 보안을 위해 일부 파라미터는 제한되거나 기본값이 고정되어 제공됩니다. 아래 명세에 기재된 파라미터 위주로 사용을 권장합니다."
| Swift 네이밍 | 설명 |
|---|---|
| Head Container | 컨테이너 존재 여부 확인 |
| List Containers | 계정 내 컨테이너 목록 조회 |
| List Capability | 계정이 가진 기능/권한 목록 조회 (확장) |
| Create Container | 새 컨테이너 생성 |
| Delete Container | 컨테이너 삭제 |
| Update Container Metadata | 컨테이너 메타데이터 수정 |
| Get Object | 객체 다운로드 |
| Head Object | 객체 메타데이터 조회 |
| List Objects | 컨테이너 내 객체 목록 조회 |
| Create Object | 객체 업로드 |
| Update Object Metadata | 객체 메타데이터 수정 |
| Delete Object | 객체 삭제 |
| Copy Object | 객체 복사 |
| Initiate Multipart Upload | 멀티파트 업로드 초기화 |
| Upload Part | 멀티파트 파트 업로드 |
| List Parts | 업로드된 파트 목록 조회 |
| List Multipart Uploads | 진행 중인 멀티파트 업로드 목록 조회 |
| Abort Multipart Upload | 멀티파트 업로드 중단 |
| Complete Multipart Upload | 멀티파트 업로드 완료 |
| Create SLO Manifest | Static Large Object(SLO) 매니페스트 업로드 |
| Create DLO Manifest | Dynamic Large Object(DLO) 매니페스트 업로드 |
| Get Object Temp URL | 객체에 접근 가능한 임시 URL 발급 (확장) |
Swift API 사용 가이드
Head Container
API 호출 방식
| 메서드 | 요청 URL |
|---|---|
| HEAD | https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Acoount}/{Bucket_Name} |
Request Syntax
curl --request HEAD --location 'https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Acoount}/{Bucket_Name}' \
--header 'X-Auth-Token: {x-auth-token}'
--header 'Content-Type: application/json'
Path Parameters
| 변수명 | 설명 |
|---|---|
| Region_Name | 서비스 리전 이름 (예: kr-central-2) |
| Acoount | 프로젝트의 고유 ID |
| Bucket_Name | 대상 버킷 이름 |
Request Header
| Request | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| X-Auth-Token | String | 필수 | 사용자 인증 토큰 |
| Content-Type | String | 필수 | application/json으로 고정 |
Request Body
이 요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
Response Header
| Request | 유형 | 설명 |
|---|---|---|
| X-Container-Object-Count | Integer | 버킷 내에 존재하는 총 객체의 수 |
| X-Container-Bytes-Used | Integer | 버킷에 저장된 객체들의 논리적 총 용량 (Byte) |
| X-Container-Bytes-Used-Actual | Integer | 복제본(Replication) 등을 포함하여 실제로 디스크에 점유된 물리적 총 용량 (Byte) |
| X-Storage-Policy | String | 버킷에 적용된 스토리지 정책 이름 (예: Policy-0) |
| X-Timestamp | Float | 버킷이 생성되거나 마지막으로 수정된 시간의 Unix Timestamp |
| X-Trans-Id | String | 요청 처리에 대한 고유 트랜잭션 식별자 (장애 대응 시 활용) |
| X-Openstack-Request-Id | String | OpenStack 서비스에서 부여한 요청 고유 ID |
| Content-Type | String | 응답 데이터의 형식 (보통 text/plain; charset=utf-8) |
상태 코드
| HTTP Status | 응답 내용 | 설명 |
|---|---|---|
200 | Success | 성공 |
401 | Unauthorized | 인증 실패 |
403 | Forbidden | 권한 없음 |
404 | Not found | 버킷을 찾을 수 없음 |
List Containers
프로젝트 내에 생성된 모든 버킷 목록을 조회합니다.
API 호출 방식
| 메서드 | 요청 URL |
|---|---|
| GET | https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Acoount} |
Request Syntax
curl --request GET --location 'https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Acoount}/' \
--header 'X-Auth-Token: {x-auth-token}'
--header 'Content-Type: application/json'
Path Parameters
| 변수명 | 설명 |
|---|---|
| Region_Name | 서비스 리전 이름 (예: kr-central-2) |
| Acoount | 프로젝트의 고유 ID |
Request Header
| Request | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| X-Auth-Token | String | 필수 | 사용자 인증 토큰 |
| Content-Type | String | 필수 | application/json으로 고정 |
Request Body
이 요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
[
my-bucket-01
my-bucket-02
my-bucket-03
my-bucket-04
my-bucket-05
]
Response Header
| Request | 설명 |
|---|---|
| X-Acoount-Container-Count | 프로젝트(Acoount) 내에 생성된 총 버킷(Container)의 개수 |
| X-Acoount-Object-Count | 프로젝트 내 모든 버킷에 저장된 전체 객체(Object)의 총합 |
| X-Acoount-Bytes-Used | 프로젝트 내 모든 객체의 논리적 총 용량 사용자가 업로드한 원본 파일 크기의 합계 (단위: Byte) |
| X-Acoount-Bytes-Used-Actual | 프로젝트 내 모든 객체가 실제로 점유 중인 물리적 용량 데이터 보호를 위한 복제본(Replication) 용량 (단위: Byte) |
| X-Acoount-Storage-Policy-Default-Placement-Container-Count | 'Default-Placement' 정책이 적용된 버킷의 개수 |
| X-Acoount-Storage-Policy-Default-Placement-Object-Count | 'Default-Placement' 정책이 적용된 버킷 내 전체 객체의 개수 |
| X-Acoount-Storage-Policy-Default-Placement-Bytes-Used | 'Default-Placement' 정책 환경에서의 논리적 총 사용량 |
| X-Acoount-Storage-Policy-Default-Placement-Bytes-Used-Actual | 'Default-Placement' 정책 환경에서의 실제 물리적 총 점유량 |
| X-Timestamp | 해당 프로젝트 정보가 마지막으로 수정되거나 통계가 갱신된 시점의 Unix Timestamp |
| X-Trans-Id | 해당 요청에 대해 시스템이 부여한 고유 트랜잭션 식별자 오류 발생 시 기술 지원을 위한 로그 추적에 사용 |
| X-Openstack-Request-Id | OpenStack 인프라에서 부여한 요청 고유 ID |
ListCapability
프로젝트가 사용 가능한 오브젝트 스토리지의 기능 및 권한 목록을 조회합니다.
API 호출 방식
| 메서드 | 요청 URL |
|---|---|
| GET | https://objectstorage.{Region_Name}.kakaocloud.com/info |
Request Syntax
curl --request GET --location 'https://objectstorage.{Region_Name}.kakaocloud.com/info'
Path Parameters
| 변수명 | 설명 |
|---|---|
| Region_Name | 서비스 리전 이름 (예: kr-central-2) |
Request Header
본 요청은 별도의 인증 헤더를 요구하지 않을 수 있습니다. (설정에 따라 상이)
Request Body
이 요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
{
"swift": {
"version": "objectstorage-api-v2.0.21-126",
"Acoount_listing_limit": 1000,
"max_meta_length": 4096,
"min_meta_value_length": 0,
"max_meta_value_length": 512,
"container_listing_limit": 1000,
"max_file_size": 5368709120,
"max_object_name_length": 396,
"min_object_name_length": 1,
"min_meta_name_length": 2,
"max_meta_name_length": 64,
"max_Acoount_name_length": 32,
"min_container_name_length": 4,
"max_container_name_length": 63,
"policies": [
{
"name": "default-placement",
"default": true
}
]
},
"tempurl": {
"methods": [
"GET"
]
},
"slo": {
"max_manifest_segments": 1000,
"min_segment_size": 1,
"max_manifest_size": 8392704
},
"tempauth": {}
}
Response Element
| Request | 유형 | 설명 |
|---|---|---|
| version | String | 오브젝트 스토리지 API의 현재 버전 |
| Acoount_listing_limit | Integer | 한 번의 요청으로 조회 가능한 최대 버킷 리스트 수(1,000) |
| max_file_size | Integer | 단일 업로드로 처리 가능한 최대 파일 크기 (단위: Byte, 약 5GB) |
| max_meta_name_length | Integer | 메타데이터 키(Key) 이름의 최대 길이 (64자) |
| max_meta_value_length | Integer | 메타데이터 값(Value)의 최대 길이 (512자) |
| max_meta_length | Integer | 전체 메타데이터의 최대 합계 길이 (4,096자) |
| max_object_name_length | Integer | 객체 이름(Key)의 최대 허용 길이 (396자) |
| min_container_name_length | Integer | 버킷 이름의 최소 길이 (4자) |
| max_container_name_length | Integer | 버킷 이름의 최대 길이 (63자) |
| policies | Array | 지원되는 스토리지 정책 목록 |
| policies.name | String | 정책의 이름 (예: default-placement) |
| policies.default | Boolean | 해당 정책이 기본으로 적용되는지 여부 |
| tempurl | Object | 임시 URL 발급 기능 관련 정보 |
| methods | Array | 임시 URL을 통해 허용되는 HTTP 메서드 목록 (예: GET) |
| slo | Object | 정적 대용량 객체(Static Large Object) 관련 제약 사항 |
| max_manifest_segments | Integer | 하나의 SLO 매니페스트에 포함될 수 있는 최대 파트 수 (1,000개) |
| min_segment_size | Integer | SLO 구성 시 파트의 최소 크기 (1 Byte) |
| max_manifest_size | Integer | SLO 매니페스트 파일 자체의 최대 크기 (Byte) |
| tempauth | Object | 임시 인증 모듈 활성화 여부를 나타내는 객체 |
Create Container
새 버킷을 생성합니다.
API 호출 방식
| 메서드 | 요청 URL |
|---|---|
| PUT | https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Acoount}/{Bucket_Name} |
Request Syntax
curl --request PUT --location 'https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Acoount}/{Bucket_Name}' \
--header 'X-Auth-Token: {x-auth-token}'
--header 'Content-Type: application/json'
Path Parameters
| 변수명 | 설명 |
|---|---|
| Region_Name | 서비스 리전 이름 (예: kr-central-2) |
| Acoount | 프로젝트의 고유 ID |
| Bucket_Name | 대상 버킷 이름 |
Request Header
| Request | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| X-Auth-Token | String | 필수 | 사용자 인증 토큰 |
| Content-Type | String | 필수 | application/json으로 고정 |
Request Body
이 요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 201 응답을 받습니다.
Delete Container
버킷을 삭제합니다.
API 호출 방식
| 메서드 | 요청 URL |
|---|---|
| DELETE | https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Acoount}/{Bucket_Name} |
Request Syntax
curl --request DELETE --location 'https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Acoount}/{Bucket_Name}' \
--header 'X-Auth-Token: {x-auth-token}'
--header 'Content-Type: application/json'
Path Parameters
| 변수명 | 설명 |
|---|---|
| Region_Name | 서비스 리전 이름 (예: kr-central-2) |
| Acoount | 프로젝트의 고유 ID |
| Bucket_Name | 대상 버킷 이름 |
Request Header
| Request | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| X-Auth-Token | String | 필수 | 사용자 인증 토큰 |
| Content-Type | String | 필수 | application/json으로 고정 |
Request Body
이 요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 204 No Content 응답을 받습니다.
Update Container Metadata
버킷의 메타데이터를 생성, 수정, 삭제 합니다.
API 호출 방식
| 메서드 | 요청 URL |
|---|---|
| POST | https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Acoount}/{Bucket_Name} |
Request Syntax
curl --request POST --location 'https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Acoount}/{Bucket_Name}' \
--header 'X-Auth-Token: {x-auth-token}'
--header 'Content-Type: application/json'
Path Parameters
| 변수명 | 설명 |
|---|---|
| Region_Name | 서비스 리전 이름 (예: kr-central-2) |
| Acoount | 프로젝트의 고유 ID |
| Bucket_Name | 대상 버킷 이름 |
Request Header
| Request | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| X-Auth-Token | String | 필수 | 사용자 인증 토큰 |
| Content-Type | String | 필수 | application/json으로 고정 |
X-Container-Meta-key | String | 선택 | 메타 데이터 값 Value ex) key = 메타데이터 Key 이름, Value = 메타 데이터값 |
X-Remove-Container-Meta-key | String | 선택 | 메타 데이터 삭제 |
Request Body
이 요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 204 No Content 응답을 받습니다.
Get Object
객체를 다운로드 합니다.
API 호출 방식
| 메서드 | 요청 URL |
|---|---|
| GET | https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Acoount}/{Bucket_Name}/{Object_Key} |
Request Syntax
curl --request GET --location 'https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Acoount}/{Bucket_Name}/{Object_Key}' \
--header 'X-Auth-Token: {x-auth-token}'
--header 'Content-Type: application/json'
Path Parameters
| 변수명 | 설명 |
|---|---|
| Region_Name | 서비스 리전 이름 (예: kr-central-2) |
| Acoount | 프로젝트의 고유 ID |
| Bucket_Name | 대상 버킷 이름 |
| Object_Key | 객체의 고유 키(경로 포함) |
Request Header
| Request | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| X-Auth-Token | String | 필수 | 사용자 인증 토큰 |
| Content-Type | String | 필수 | application/json으로 고정 |
Request Body
이 요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다. 요청된 객체를 불러옵니다.
Response Header
| Request | 설명 |
|---|---|
| Date | response 생성 시간 |
| Content-Type | body에 담긴 content의 형식 |
| Content-Length | Object 크기 |
| Connection | connection 재활용 여부 |
| Accept-Ranges | 클라이언트가 원하는 파일의 일부분을 바이트 단위로 요청할 수 있음 |
| Etag | 웹 서버가 리소스의 내용이나 메타데이터가 변경되었는지를 식별하기 위한 식별자 |
| Last-Modified | 마지막 수정일 |
| X-Object-Storage-Class | Integer |
| X-Openstack-Request-Id | String |
| X-Trans-Id | String |
| X-Rgw-Object-Type | String |
Head Object
객체 Head 정보를 조회합니다.
API 호출 방식
| 메서드 | 요청 URL |
|---|---|
| HEAD | https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Acoount}/{Bucket_Name}/{Object_Key} |
Request Syntax
curl --request HEAD --location 'https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Acoount}/{Bucket_Name}/{Object_Key}' \
--header 'X-Auth-Token: {x-auth-token}'
--header 'Content-Type: application/json'
Path Parameters
| 변수명 | 설명 |
|---|---|
| Region_Name | 서비스 리전 이름 (예: kr-central-2) |
| Acoount | 프로젝트의 고유 ID |
| Bucket_Name | 대상 버킷 이름 |
| Object_Key | 객체의 고유 키(경로 포함) |
Request Header
| Request | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| X-Auth-Token | String | 필수 | 사용자 인증 토큰 |
| Content-Type | String | 필수 | application/json으로 고정 |
Request Body
이 요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
Response Header
| Request | 설명 |
|---|---|
| Date | response 생성 시간 |
| Content-Type | body에 담긴 content의 형식 |
| Content-Length | Object 크기 |
| Connection | connection 재활용 여부 |
| Accept-Ranges | 클라이언트가 원하는 파일의 일부분을 바이트 단위로 요청할 수 있음 |
| Etag | 웹 서버가 리소스의 내용이나 메타데이터가 변경되었는지를 식별하기 위한 식별자 |
| Last-Modified | 마지막 수정일 |
| X-Object-Storage-Class | Integer |
| X-Openstack-Request-Id | String |
| X-Trans-Id | String |
| X-Rgw-Object-Type | String |
List Objects
버킷에 저장된 오브젝트(파일, 폴더) 목록을 조회합니다.
API 호출 방식
| 메서드 | 요청 URL |
|---|---|
| GET | https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Acoount}/{Bucket_Name}?format=json |
Request Syntax
curl --request GET --location 'https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Acoount}/{Bucket_Name}?format=json' \
--header 'X-Auth-Token: {x-auth-token}'
--header 'Content-Type: application/json'
Path Parameters
| 변수명 | 설명 |
|---|---|
| Region_Name | 서비스 리전 이름 (예: kr-central-2) |
| Acoount | 프로젝트의 고유 ID |
| Bucket_Name | 대상 버킷 이름 |
Request Query
| Request | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| prefix | Query | 선택 | Directory path - 예시: image/small |
| delimiter | Query | 선택 | delimiter를 key로 사용할 경우에는 / 입력 필요 |
| limit | Query | 선택 | 목록 개수 - 기본값: 1000 (최대 1,000개 까지 조회 가능) |
| marker | Query | 선택 | 검색 조건 - (Object name > Marker ) |
| format | Query | 선택 | response 받을 포맷 - plain(기본값)- json- xml |
Request Header
| Request | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| X-Auth-Token | String | 필수 | 사용자 인증 토큰 |
| Content-Type | String | 필수 | application/json으로 고정 |
Request Body
이 요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
[
{
"name": "apple1.JPG",
"hash": "4fabff2e18b68ae780cf0bc54d1fec82",
"bytes": 1699756,
"content_type": "image/jpeg",
"last_modified": "2026-02-19T04:44:38.302Z"
},
]
Response Elements
| Response | 유형 | 설명 |
|---|---|---|
| name | String | 오브젝트 이름 |
| content_type | String | 해당 오브젝트를 PUT할 때 입력받았던 Content-Type 값이 반환 - 유형: directory / 이미지 / 구분 바이너리 등 |
| bytes | int | 오브젝트 크기 |
| hash | String | 파일 고유값 |
| last_modified | String | 최종 수정일시 - 형식: RFC3339 - 예시: 2020-07-01T00:00:00Z |
| subdir | String | pseudo-directory인 경우 이 값만 제공됨 |
Create Object
버킷에 객체를 업로드 한다.
API 호출 방식
| 메서드 | 요청 URL |
|---|---|
| PUT | https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Acoount}/{Bucket_Name}/{Object_Key} |
Request Syntax
curl --request PUT --location 'https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Acoount}/{Bucket_Name}/{Object_Key}' \
--header 'X-Auth-Token: {x-auth-token}'
--header 'Content-Type: application/json'
--data-binary {local_file_part_path}
Path Parameters
| 변수명 | 설명 |
|---|---|
| Region_Name | 서비스 리전 이름 (예: kr-central-2) |
| Acoount | 프로젝트의 고유 ID |
| Bucket_Name | 대상 버킷 이름 |
| Object_Key | 객체의 고유 키(경로 포함) |
Request Header
| Request | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| X-Auth-Token | String | 필수 | 사용자 인증 토큰 |
| Content-Type | String | 선택 | Put(업로드)하는 오브젝트가 파일인 경우 mime type 문자열을 입력 - 콘텐츠 유형을 입력하지 않은 Put(업로드) 경우, Object Storage 내부적으로 현재 업로드하는 파일의 유형을 application/octet-stream으로 처리 |
X-Object-Meta-{name} | String | 선택 | 버킷 메타 정보로, 사용자가 지정할 메타 데이터 이름을 {name}에 입력 |
| Content-Length | int | 선택 | 콘텐츠 길이 |
| Transfer-Encoding | String | 선택 | 인코딩 방식 - chunked : 데이터가 일련의 청크 내에서 분할하여 전송하는 방식으로, chunked 값이 지정된 경우는 Content-Length Header는 전송되면 안 됨- compress : LZW 알고리즘을 사용하는 압축 방식- deflate : deflate 알고리즘을 사용하는 압축 방식- gzip : LZ77 알고리즘을 사용하는 압축 방식- identity : 압축이나 수정이 없는 전송 방식 |
Request Body
객체 데이터. (업로드하는 실제 데이터입니다.)
파일 스트림(Byte Stream)을 본문에 직접 담아 전송합니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
Update Object Metadata
객체의 메타데이터를 생성, 수정, 삭제 합니다.
API 호출 방식
| 메서드 | 요청 URL |
|---|---|
| POST | https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Acoount}/{Bucket_Name}/{Object_Key} |
Request Syntax
curl --request POST --location 'https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Acoount}/{Bucket_Name}/{Object_Key}' \
--header 'X-Auth-Token: {x-auth-token}'
--header 'Content-Type: application/json'
Path Parameters
| 변수명 | 설명 |
|---|---|
| Region_Name | 서비스 리전 이름 (예: kr-central-2) |
| Acoount | 프로젝트의 고유 ID |
| Bucket_Name | 대상 버킷 이름 |
| Object_Key | 객체의 고유 키(경로 포함) |
Request Header
| Request | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| X-Auth-Token | String | 필수 | 사용자 인증 토큰 |
| Content-Type | String | 선택 | Put(업로드)하는 오브젝트가 파일인 경우 mime type 문자열을 입력 - 콘텐츠 유형을 입력하지 않은 Put(업로드) 경우, Object Storage 내부적으로 현재 업로드하는 파일의 유형을 application/octet-stream으로 처리 |
X-Object-Meta-{name} | String | 선택 | 버킷 메타 정보로, 사용자가 지정할 메타 데이터 이름을 {name}에 입력 |
| Content-Length | int | 선택 | 콘텐츠 길이 |
Request Body
이 요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
Delete Object
객체를 삭제합니다.
API 호출 방식
| 메서드 | 요청 URL |
|---|---|
| DELETE | https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Acoount}/{Bucket_Name}/{Object_Key} |
Request Syntax
curl --request DELETE --location 'https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Acoount}/{Bucket_Name}/{Object_Key}' \
--header 'X-Auth-Token: {x-auth-token}'
--header 'Content-Type: application/json'
Path Parameters
| 변수명 | 설명 |
|---|---|
| Region_Name | 서비스 리전 이름 (예: kr-central-2) |
| Acoount | 프로젝트의 고유 ID |
| Bucket_Name | 대상 버킷 이름 |
| Object_Key | 객체의 고유 키(경로 포함) |
Request Query
| Request | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| multipart-manifest | Query | 필수 | delete 값을 입력하여 연결된 모든 세그먼트를 함께 삭제하도록 지정합니다. |
Request Header
| Request | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| X-Auth-Token | String | 필수 | 사용자 인증 토큰 |
| Content-Type | String | 필수 | application/json으로 고정 |
Request Body
이 요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 204 응답을 받습니다.
Copy Object
객체를 복사 합니다.
API 호출 방식
| 메서드 | 요청 URL |
|---|---|
| PUT | https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Acoount}/{dest_Bucket_Name}/{dest_Object_Key} |
Request Syntax
curl --request PUT --location 'https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Acoount}/{dest_Bucket_Name}/{dest_Object_Key}' \
--header 'X-Auth-Token: {x-auth-token}' \
--header 'Content-Length: 0' \
--header 'X-Copy-From: /{src_bucket_name}/{src_object_key}'
Path Parameters
| 변수명 | 설명 |
|---|---|
| Region_Name | 서비스 리전 이름 (예: kr-central-2) |
| Acoount | 프로젝트의 고유 ID |
| dest_Bucket_Name | 복사된 객체가 저장될 대상(목적지) 버킷 이름 |
| dest_Object_Key | 복사되어 새로 생성될 대상(목적지) 객체의 고유 키(경로 포함) |
Request Header
| Request | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| X-Auth-Token | String | 필수 | 사용자 인증 토큰 |
| Content-Length | String | 필수 | application/json으로 고정 |
| X-Fresh-Metadata | String | 선택 | True로 설정 시 원본의 메타데이터를 복사하지 않고 요청에 포함된 새 메타데이터만 적용 |
| X-Copy-From | String | 필수 | 원본 객체의 경로 |
Request Body
이 요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 201 응답을 받습니다.
Initiate Multipart Upload
대용량 객체 업로드를 위해 멀티파트 업로드를 **초기화(Initiate)**합니다.
이 요청이 성공해야만 파일 조각(Part)들을 올릴 수 있는 고유한 UploadId가 발급됩니다.
API 호출 방식
| 메서드 | 요청 URL |
|---|---|
| POST | https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Account}/{Bucket_name}/{Object_Key}?uploads |
Request Syntax
curl --request POST --location `https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Account}/{Bucket_name}/{Object_Key}?uploads` \
--header 'X-Auth-Token: {x-auth-token}' \
--header 'Content-Type: application/json'
Path Parameters
| 변수명 | 설명 |
|---|---|
| Region_Name | 서비스 리전 이름 (예: kr-central-2) |
| Acoount | 프로젝트의 고유 ID |
| Bucket_Name | 대상 버킷 이름 |
| Object_Key | 객체의 고유 키(경로 포함) |
Request Header
| Request | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| X-Auth-Token | String | 필수 | 사용자 인증 토큰 |
| Content-Type | String | 필수 | application/json으로 고정 |
Request Body
이 요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
<?xml version="1.0" encoding="UTF-8"?>
<InitiateMultipartUploadResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Tenant>String</Tenant>
<Bucket>String</Bucket>
<Key>String</Key>
<UploadId>String</UploadId>
</InitiateMultipartUploadResult>
Response Elements
| Response | 설명 |
|---|---|
| Tenant | 프로젝트 ID |
| Bucket | 업로드가 진행되는 버킷 이름 |
| Key | 업로드될 객체의 이름 (Path) |
| UploadId | 멀티파트 업로드를 식별하는 고유 ID. UploadPart, CompleteMultipartUpload 호출 시 사용 |
Upload Part
대용량 객체를 여러 개의 파트로 나누어 업로드합니다.
모든 파트 업로드가 완료된 후 CompleteMultipartUpload를 호출하여 하나의 객체로 결합해야 합니다.
API 호출 방식
| 메서드 | 요청 URL |
|---|---|
| PUT | https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Account}/{Bucket_Name}/{Object_Key}?partNumber={n}&uploadId={Upload_Id} |
Request Syntax
curl --request PUT --location 'https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Account}/{Bucket_Name}/{Object_Key}?partNumber={n}&uploadId={Upload_Id}' \
--header 'X-Auth-Token: {x-auth-token}' \
--header 'Content-Type: application/octet-stream' \
--upload-file {local_file_part_path}
Path Parameters
| Path | 설명 | | --- | --- | --- | --- | | Region_Name | 서비스 리전 이름 (예: kr-central-2) | | Acoount | 프로젝트의 고유 ID | | Bucket_Name | 버킷 이름 | | Object_Key | 객체의 고유 키(경로 포함) |
Request Query
| Request | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| uploadId | Query | 필수 | Initiate Multipart Upload에서 반환된 large object의 고유 upload id |
| partNumber | Query | 필수 | 현재 업로드하는 부분 파일의 large object 상 부분 순번 (1~10000) |
Request Header
| Request | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| X-Auth-Token | String | 필수 | 사용자 인증 토큰 |
| Content-Type | String | 필수 | application/octet-stream으로 고정 |
Request Body
객체 데이터. (업로드하는 실제 데이터입니다.)
파일 스트림(Byte Stream)을 본문에 직접 담아 전송합니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 201 응답을 받습니다.
Response Header
| Request | 설명 |
|---|---|
| Date | response 생성 시간 |
| Etag | 웹 서버가 리소스의 내용이나 메타데이터가 변경되었는지를 식별하기 위한 식별자 |
| X-Trans-Id | String |
| X-Openstack-Request-Id | String |
List Part
특정 멀티파트 업로드에 대해 성공적으로 업로드된 파트 목록을 조회합니다.
API 호출 방식
| 메서드 | 요청 URL |
|---|---|
| GET | https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Account}/{Bucket_Name}/{Object_Key}?uploadId={Upload_Id} |
Request Syntax
curl --request GET --location 'https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Account}/{Bucket_Name}/{Object_Key}?uploadId={Upload_Id}' \
--header 'X-Auth-Token: {x-auth-token}' \
Path Parameters
| Path | 설명 |
|---|---|
| Region_Name | 서비스 리전 이름 (예: kr-central-2) |
| Acoount | 프로젝트의 고유 ID |
| Bucket_Name | 버킷 이름 |
| Object_Key | 객체의 고유 키(경로 포함) |
Request Query
| Request | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| uploadId | Query | 필수 | Initiate Multipart Upload에서 반환된 large object의 고유 upload id |
Request Header
| Request | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| X-Auth-Token | String | 필수 | 사용자 인증 토큰 |
Request Body
이 요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
Response Header
| Request | 설명 |
|---|---|
| Date | response 생성 시간 |
| Etag | 웹 서버가 리소스의 내용이나 메타데이터가 변경되었는지를 식별하기 위한 식별자 |
| X-Trans-Id | String |
| X-Openstack-Request-Id | String |
List Multipart Uploads
특정 버킷에서 완료되지 않고 진행 중인 모든 멀티파트 업로드 목록을 조회합니다.
API 호출 방식
| 메서드 | 요청 URL |
|---|---|
| GET | https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Account}/{Bucket_Name}/{Object_Key}?uploads |
Request Syntax
curl --request GET --location `https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Account}/{Bucket_Name}/{Object_Key}?uploads` \
--header 'X-Auth-Token: {x-auth-token}' \
Path Parameters
| Path | 설명 |
|---|---|
| Region_Name | 서비스 리전 이름 (예: kr-central-2) |
| Acoount | 프로젝트의 고유 ID |
| Bucket_Name | 버킷 이름 |
| Object_Key | 객체의 고유 키(경로 포함) |
Request Header
| Request | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| X-Auth-Token | String | 필수 | 사용자 인증 토큰 |
Request Body
이 요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
<?xml version="1.0" encoding="UTF-8"?>
<ListMultipartUploadsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Tenant>String</Tenant>
<Bucket>String</Bucket>
<NextKeyMarker>String</NextKeyMarker>
<NextUploadIdMarker>String</NextUploadIdMarker>
<MaxUploads>Integer</MaxUploads>
<IsTruncated>Boolean</IsTruncated>
<Upload>
<Key>String</Key>
<UploadId>String</UploadId>
<Initiator>
<ID>String</ID>
<DisplayName>String</DisplayName>
</Initiator>
<Owner>
<ID>String</ID>
<DisplayName>String</DisplayName>
</Owner>
<StorageClass>String</StorageClass>
<Initiated>Timestamp</Initiated>
</Upload>
</ListMultipartUploadsResult>
Response Elements
| Response | 유형 | 설명 |
|---|---|---|
| Tenant | String | 프로젝트 ID |
| Bucket | String | 버킷 이름 |
| NextKeyMarker | String | 다음 요청에서 key-marker 요청 매개변수에 사용해야 하는 값 |
| NextUploadIdMarker | String | 다음 요청에서 upload-id-marker 요청 매개변수에 사용해야 하는 값 |
| MaxUploads | Integer | 멀티파트 업로드의 최대 수 |
| IsTruncated | String | Part 목록이 잘렸는지 여부 |
| Key | String | 업로드할 객체 키 |
| UploadId | String | 멀티파트 업로드 ID |
| ID | String | 프로젝트 ID |
| DisplayName | String | 프로젝트 이름 |
| StorageClass | String | 스토리지 클래스 |
| Initiated | Timestamp | 멀티파트 업로드 시작 일시 |
Abort Multipart Upload
진행 중인 멀티파트 업로드를 중단하고 업로드된 모든 파트를 삭제합니다.
중단된 UploadId는 더 이상 사용할 수 없습니다.
API 호출 방식
| 메서드 | 요청 URL |
|---|---|
| DELETE | https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Account}/{Bucket_Name}/{Object_Key}?uploadId={upload_id} |
Request Syntax
curl --request DELETE --location `https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Account}/{Bucket_Name}/{Object_Key}?uploadId={upload_id}` \
--header 'X-Auth-Token: {x-auth-token}' \
Path Parameters
| Path | 설명 |
|---|---|
| Region_Name | 서비스 리전 이름 (예: kr-central-2) |
| Acoount | 프로젝트의 고유 ID |
| Bucket_Name | 버킷 이름 |
| Object_Key | 객체의 고유 키(경로 포함) |
Request Query
| Request | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| uploadId | Query | 필수 | Initiate Multipart Upload에서 반환된 large object의 고유 upload id |
Request Header
| Request | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| X-Auth-Token | String | 필수 | 사용자 인증 토큰 |
| Content-Type | String | 필수 | application/json으로 고정 |
Request Body
이 요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 204 응답을 받습니다.
CompleteMultipartUpload
API 호출 방식
| 메서드 | 요청 URL |
|---|---|
| POST | https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Account}/{Bucket_Name}/{Object_Key}?uploadId={upload_id} |
Request Syntax
curl --request POST --location `https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Account}/{Bucket_Name}/{Object_Key}?uploadId={upload_id}` \
--header 'X-Auth-Token: {x-auth-token}' \
--header 'Content-Type: application/json' \
--data '<CompleteMultipartUpload>
<Part>
<PartNumber>1</PartNumber>
<ETag>"897a0f868d69985acdbf1e9f9d6f3603"</ETag>
</Part>
</CompleteMultipartUpload>'
Path Parameters
| Path | 설명 |
|---|---|
| Region_Name | 서비스 리전 이름 (예: kr-central-2) |
| Acoount | 프로젝트의 고유 ID |
| Bucket_Name | 버킷 이름 |
| Object_Key | 객체의 고유 키(경로 포함) |
Request Query
| Request | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| uploadId | Query | 필수 | Initiate Multipart Upload에서 반환된 large object의 고유 upload id |
Request Header
| Request | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| X-Auth-Token | String | 필수 | 사용자 인증 토큰 |
| Content-Type | String | 필수 | application/json으로 고정 |
Request Body
<CompleteMultipartUpload>
<Part>
<ETag>String</ETag>
<PartNumber>Integer</PartNumber>
</Part>
...
</CompleteMultipartUpload>
Request Elements
| Request | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| ETag | String | 선택 | 객체의 해시값 |
| PartNumber | Integer | 선택 | 파트 식별 번호 (1 - 10,000 사이의 양의 정수) |
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
SLO(Static Large Object) 방식
SLO 방식은 DLO와 동일하게 Segment를 분할해 업로드하지만, Segment Naming 제약이 없고 사이즈가 동일하지 않아도 된다는 차이점이 있습니다. 또한, Manifest를 제일 마지막에 업로드해야 합니다. SLO Manifest Object는 Segment Object 목록을 순서대로 작성하여 입력해야 합니다. 현재 KC Object Storage에서는 최대 1,000개의 Segment Object를 하나의 Manifest에 입력할 수 있습니다.
SLO Manifest Object 생성 요청을 하면 각 Segment Object가 입력된 경로에 있는지, etag Value와 Segment object Size가 일치하는지 확인합니다. 정보가 일치하지 않으면 Manifest Object가 생성되지 않습니다. 또한, Manifest에 etag를 통해 Segment Object의 무결성을 보장합니다.
- 하나의 단일 대용량 오브젝트(Large Object)를 사용자가 원하는 크기로 분할(Segment)합니다.
- 각 Segment를 접근 권한이 있는 버킷에 업로드합니다. 동일한 버킷이 아니어도 되나, 접근 권한이 있는 프로젝트(Acoount) 버킷이어야 합니다.
- 위의 업로드된 Segment 오브젝트의 Path, Etag, Size가 기록된 Manifest를 Body로 입력하여, SLO Manifest Object를 업로드합니다.
Manifest에 대한 자세한 예제는 https://objectstorage.kr-central-2.kakaocloud.com/info에서 참고하시기 바랍니다.
Create SLO Manifest
업로드된 세그먼트(조각)들의 정보를 담은 JSON 매니페스트 파일을 업로드하여 하나의 정적 대용량 객체(SLO)를 생성합니다.
API 호출 방식
| 메서드 | 요청 URL |
|---|---|
| PUT | https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Account}/{Bucket_Name}/{SLO Manifest Object}?multipart-manifest=put |
Request Syntax
curl --request PUT --location `https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Account}/{Bucket_Name}/{SLO Manifest Object}?multipart-manifest=put` \
--header 'X-Auth-Token: {x-auth-token}' \
--header 'Content-Type: application/json' \
--data '[
{
"path": "{Bucket_Name}/{Segment Object}",
"etag": "{Segment Object Etag}}",
"size_bytes": {Segment Object Size}
},
{
"path": "{Bucket_Name}/{Segment Object}",
"etag": "{Segment Object Etag}}",
"size_bytes": {Segment Object Size}
},
{
"path": "{Bucket_Name}/{Segment Object}",
"etag": "{Segment Object Etag}}",
"size_bytes": {Segment Object Size}
}
]'
Path Parameters
| Path | 설명 |
|---|---|
| Region_Name | 서비스 리전 이름 (예: kr-central-2) |
| Acoount | 프로젝트의 고유 ID |
| Bucket_Name | 버킷 이름 |
| SLO Manifest Object | Manifest Object 이름 |
Request Header
| Request | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| X-Auth-Token | String | 필수 | 사용자 인증 토큰 |
| Content-Type | String | 필수 | application/json으로 고정 |
Request Body
[
{
"path": "jay-cool-1/video_part_aa",
"etag": "841aa70a236b55d22260aa4defe699cf",
"size_bytes": 52428800
},
{
"path": "jay-cool-1/video_part_ab",
"etag": "30c4e8955088e398b2b87d52554d3f90",
"size_bytes": 23052099
}
...
]
Request Elements
| Request | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| Path | String | 필수 | Path/Segment Object 형식으로 입력 - Path: Object를 업로드할 경로 - Segment Object: path 하위의 Segment object |
| ETag | String | 필수 | 객체의 해시값 |
| size_bytes | Integer | 필수 | Segment Object 사이즈 |
Manifest PUT 시 etag와 size_bytes를 입력한 후, 기존의 업로드된 segment object의 etag와 size_bytes 값을 비교하여 일치하지 않을 시 오류를 발생시킴
Response Syntax
동작에 성공하면, 서비스는 HTTP 201 응답을 받습니다.
Create DLO Manifest
특정 접두어(Prefix)를 가진 객체들을 하나의 큰 객체로 묶어주는 매니페스트 파일을 생성합니다.
API 호출 방식
| 메서드 | 요청 URL |
|---|---|
| PUT | https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Account}/{Bucket_Name}/{DLO Manifest Object} |
Request Syntax
curl --request PUT --location `https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Account}/{Bucket_Name}/{DLO Manifest Object}` \
--header 'X-Auth-Token: {x-auth-token}' \
--header 'X-Object-Manifest: {Bucket_Name}/{Segment_Object_Prefix}' \
--header 'Content-Length: 0'
Path Parameters
| Path | 설명 |
|---|---|
| Region_Name | 서비스 리전 이름 (예: kr-central-2) |
| Acoount | 프로젝트의 고유 ID |
| Bucket_Name | 버킷 이름 |
| Object_Key | 객체의 고유 키(경로 포함) |
Request Header
| Request | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| X-Auth-Token | String | 필수 | 사용자 인증 토큰 |
| X-Object-Manifest | String | 필수 | 조각 파일들이 위치한 {버킷명}/{접두어}를 지정합니다. - 오름차순 Sequence Number Naming 필요함 (예시: segment_0001 ... segment_0002 ) |
Response Syntax
동작에 성공하면, 서비스는 HTTP 201 응답을 받습니다.
Get Object Temp URL
Object 다운로드용 Temp URL 생성
Object 다운로드용 Temp URL을 생성합니다.
오브젝트에 대한 접근 권한이 있는 사용자는 특정 기간 유효한 다운로드용 Temp URL을 생성합니다. temp_url_expires는 유효 시간으로 사용자가 지정한 시간까지 다운로드 받을 수 있도록 설정합니다.
API 호출 방식
| 메서드 | 요청 URL |
|---|---|
| GET | https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Acoount}/{Bucket_Name}/{Object_Key}?temp_url&temp_url_expires={temp_url_expires} |
Request Syntax
curl --request GET --location `https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Acoount}/{Bucket_Name}/{Object_Key}?temp_url&temp_url_expires={temp_url_expires}` \
--header 'X-Auth-Token: {x-auth-token}'
--header 'Content-Type: application/json'
Path Parameters
| 변수명 | 설명 |
|---|---|
| Region_Name | 서비스 리전 이름 (예: kr-central-2) |
| Acoount | 프로젝트의 고유 ID |
| Bucket_Name | 대상 버킷 이름 |
| Object_Key | 객체의 고유 키(경로 포함) |
Request Header
| Request | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| X-Auth-Token | String | 필수 | 사용자 인증 토큰 |
| Content-Type | String | 필수 | application/json으로 고정 |
Request Query
| Request | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| temp_url | String | 필수 | TempUrl 발급 요청을 나타내는 키 |
| temp_url_expires | timestamp | 필수 | 발급된 TempUrl의 유효시간 - sec 단위 |
Request Body
이 요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
Response Body
{
"url": "/v1/{project_id}/object-reg-test-1/test.txt?temp_url_sig={temp_url_sig}&temp_url_expires={temp_url_expires}",
"sig": "{sig}"
}
Response Elements
| Response | 유형 | 설명 |
|---|---|---|
| url | string | 해당 오브젝트를 expire 시간 안에 다운로드 받을 수 있는 임시 URL |
| sig | string | 해당 URL의 signature이며 object의 expire 시간 안에서 유효한 signature |
Temp URL을 사용한 Object 다운로드
Temp URL을 사용해 Object 다운로드 합니다.
생성된 Temp URL을 사용하면 발급 시 신청한 유효 시간 동안 해당 오브젝트를 다운로드할 수 있습니다.
Temp URL을 사용할 경우, X-Auth-Token 없이 다운로드받을 수 있으므로 Temp URL의 발급자는 신뢰할 수 있는 사용자에게 전달해야 합니다.
API 호출 방식
| 메서드 | 요청 URL |
|---|---|
| GET | https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Acoount}/{Bucket_Name}/{Object_Key}?temp_url&temp_url_expires={temp_url_expires} |
Request Syntax
curl --request GET --location `https://objectstorage.{Region_Name}.kakaocloud.com/v1/{Acoount}/{Bucket_Name}/{Object_Key}?temp_url_sig={temp_url_sig}&temp_url_expires={temp_url_expires}` \
--header 'X-Auth-Token: {x-auth-token}'
--header 'Content-Type: application/json'
Path Parameters
| 변수명 | 설명 |
|---|---|
| Region_Name | 서비스 리전 이름 (예: kr-central-2) |
| Acoount | 프로젝트의 고유 ID |
| Bucket_Name | 대상 버킷 이름 |
| Object_Key | 객체의 고유 키(경로 포함) |
Request Query
| Request | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| temp_url_sig | Query | 필수 | 발급받은 Temp URL Response의 signature 정보 |
| temp_url_expires | Query | 필수 | 발급받은 Temp URL Response의 유효시간 정보 - 단위: Unix epoch time |
| filename | Query | 선택 | 오브젝트를 브라우저에서 다운로드받을 때 사용할 custom 파일명 - utf-8 percent encoding된 문자열 |
Request Header
| Request | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| X-Auth-Token | String | 필수 | 사용자 인증 토큰 |
| Content-Type | String | 필수 | application/json으로 고정 |
Request Body
이 요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다. 요청된 객체를 불러옵니다.