S3
카카오클라우드의 Object Storage는 S3 API와 호환성을 제공합니다.
API 사용 준비
API를 호출하기 위해 필요한 사전 작업은 API 사용 준비 문서를 참고하시기 바랍니다.
Authentication
임시 자격 증명
현재는 AssumeRoleWithWebIdentity
만 지원합니다.
Openstack Token을 이용하여 token 사용자의 권한으로 임시 자격 증명을 만들 수 있습니다.
생성된 임시 자격 증명은 사용자 token이 발급된 project의 role을 동일하게 부여받습니다.
Request Syntax
curl -X POST \ 'https://objectstorage.kr-central-2.kakaocloud.com/' \
--header 'Accept: */*' \
--header 'Content-Type: application/json' \
--data-raw '{
"Action" : "AssumeRoleWithWebIdentity",
"DurationSeconds" : 1800,
"ProviderId" : "iam.kakaocloud.com",
"WebIdentityToken" : "{x-auth-token}"
}'
메서드 | 요청 URL |
---|---|
POST | https://objectstorage.kr-central-2.kakaocloud.com/ |
Request Elements
Query | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Action | String | 필수 | 수행하려는 Action의 종류 - AssumeRoleWithWebIdentity 만 지원됨 |
DurationSeconds | Int | 선택 | 임시 자격 증명이 유효한 지속 기간 |
ProviderId | String | 선택 | WebIdentity를 제공하는 주체 현재는 iam.kakaocloud.com 만 제공함 |
WebIdentityToken | String | 필수 | Openstack에서 발급한 토큰 |
Response Syntax
<AssumeRoleWithWebIdentityResponse>
<AssumeRoleWithWebIdentityResult>
<SubjectFromWebIdentityToken>{user_id}</SubjectFromWebIdentityToken>
<Credentials>
<SessionToken>{session_token}</SessionToken>
<SecretAccessKey>{session_secret_key}</SecretAccessKey>
<Expiration>{expiration}</Expiration>
<AccessKeyId>{session_access_key}</AccessKeyId>
</Credentials>
<Provider>iam.kakaocloud.com</Provider>
</AssumeRoleWithWebIdentityResult>
<ResponseMetadata>
<RequestId>{request_id}</RequestId>
</ResponseMetadata>
</AssumeRoleWithWebIdentityResponse>
Response Elements
Response | 유형 | 설명 |
---|---|---|
user_id | String | 임시자격 증명이 사용할 사용자 ID |
session_token | String | 임시 자격 증명의 보안 토큰 |
session_secret_key | String | 임시 자격 증명의 보안 액세스 키 |
session_access_key | String | 임시 자격 증명의 보안 액세스 키 ID |
expiration | Timestamp | 임시 자격 증명의 만료 시간 |
상태 코드
HTTP Status | 응답 내용 | 설명 |
---|---|---|
200 | OK | 성공 |
400 | BadRequest | 요청 정보 오류 |
403 | Forbidden | 권한 없음 |
임시 자격 증명을 이용한 S3 요청
S3의 임시자격 증명을 이용한 요청과 동일합니다.
Credential 발급
현재는 Openstack에서 ec2 credential 발급을 하여 사용합니다.
Request Syntax
openstack ec2 credentials create --project {project-id}
Argument | 유형 | 필수 여부 | 설명 |
---|---|---|---|
project_id | String | 필수 | 발급하고자 하는 프로젝트의 ID |
Response Syntax
+------------+-----------------+
| Field | Value |
+------------+-----------------+
| access | {access_key_id} |
| project_id | {project_id} |
| secret | {secret_key} |
| user_id | {user_id} |
+------------+-----------------+
Response Elements
Response | 유형 | 설명 |
---|---|---|
access_key_id | String | 생성된 액세스 키 ID (aws_access_key_id )로 사용 |
user_id | String | 요청한 사용자 ID |
project_id | String | 크리덴셜이 유효한 project_id |
secret_key | String | 생성된 액세스 키(aws_secret_access_key ) 로 사용 |
응답에서 발급되는 access와 secret은 AWS credential로 사용하게 됩니다.
제공되는 기능 목록
Expected owner 기능은 현재 지원하지 않습니다.
S3 API 리전별 지원 여부
- kr-central-1
- kr-central-2
현재 kr-central-1 리전에서는 S3 API를 지원하지 않습니다.
카카오클라우드 Object Storage의 bucket CORS 기능을 사용하거나 Public Access가 설정된 버킷에 s3 엔드포인트 url로 접근하려면 project id를 다음과 같이 함께 명기해야 합니다.
https://objectstorage.kr-central-2.kakaocloud.com/{project-id}:{bucket-name}/{object-path}
Feature | API 지원 현황 | 설명 |
---|---|---|
ListBuckets | Supported | |
SecurityTokenService | Partially supported | AssumeRoleWithWebIdentity 만 지원 |
HeadBucket | Supported | |
GetBucketAccelerateConfiguration | ||
GetBucketAcl | Supported | |
GetBucketAnalyticsConfiguration | ||
ListBucketAnalyticsConfigurations | ||
GetBucketCors | ||
GetBucketEncryption | Supported | |
GetBucketIntelligentTieringConfiguration | ||
ListBucketIntelligentTieringConfigurations | ||
GetBucketInventoryConfiguration | ||
ListBucketInventoryConfigurations | ||
GetBucketLifecycle | Supported | |
GetBucketLifecycleConfiguration | Supported | |
GetBucketLocation | Supported | |
GetBucketLogging | Supported | |
GetBucketMetricsConfiguration | ||
ListBucketMetricsConfigurations | ||
GetBucketNotification | ||
GetBucketNotificationConfiguration | ||
GetBucketOwnershipControls | ||
GetBucketPolicy | ||
GetBucketPolicyStatus | ||
GetBucketReplication | ||
GetBucketRequestPayment | ||
GetBucketTagging | ||
GetBucketVersioning | ||
GetBucketWebsite | ||
ListObjectVersions | ||
ListObjectsV2 | Supported | |
GetObjectLockConfiguration | ||
GetPublicAccessBlock | ||
ListMultipartUploads | Supported | |
ListObjects | Supported | |
PutBucketAccelerateConfiguration | ||
PutBucketAcl | Partially supported | 사용자 ID와 AllUsers URI 기반의 설정만 가능 |
PutBucketAnalyticsConfiguration | ||
PutBucketCors | ||
PutBucketEncryption | Partially supported | 버킷이 비어있는 경우에만 설정 가능 |
PutBucketIntelligentTieringConfiguration | ||
PutBucketInventoryConfiguration | ||
PutBucketLifecycle | Partial Supported | |
PutBucketLifecycleConfiguration | Partial Supported | |
PutBucketLogging | Supported | |
PutBucketMetricsConfiguration | ||
PutBucketNotification | ||
PutBucketNotificationConfiguration | ||
PutBucketOwnershipControls | ||
PutBucketPolicy | ||
PutBucketReplication | ||
PutBucketRequestPayment | ||
PutBucketTagging | ||
PutBucketVersioning | ||
PutBucketWebsite | ||
PutObjectLockConfiguration | ||
PutPublicAccessBlock | ||
CreateBucket | Supported | |
DeleteBucketAnalyticsConfiguration | ||
DeleteBucketCors | ||
DeleteBucketEncryption | ||
DeleteBucketIntelligentTieringConfiguration | ||
DeleteBucketInventoryConfiguration | ||
DeleteBucketLifecycle | Supported | |
DeleteBucketLifecycleConfiguration | Supported | |
DeleteBucketMetricsConfiguration | ||
DeleteBucketOwnershipControls | ||
DeleteBucketPolicy | ||
DeleteBucketReplication | ||
DeleteBucketTagging | ||
DeleteBucketWebsite | ||
DeletePublicAccessBlock | ||
DeleteBucket | Supported | |
DeleteObjects | Supported | |
HeadObject | Supported | |
GetObjectAcl | ||
GetObjectAttributes | ||
GetObjectLegalHold | ||
GetObjectRetention | ||
GetObjectTagging | Supported | |
GetObjectTorrent | ||
ListParts | Supported | |
GetObject | Supported | |
PutObjectAcl | ||
PutObjectLegalHold | ||
PutObjectRetention | ||
PutObjectTagging | Supported | |
UploadPartCopy | Supported | |
UploadPart | Supported | |
CopyObject | Supported | |
PutObject | Supported | |
AbortMultipartUpload | Supported | |
DeleteObjectTagging | Supported | |
DeleteObject | Supported | |
CompleteMultipartUpload | Supported | |
CreateMultipartUpload | Supported | |
RestoreObject | ||
SelectObjectContent | ||
WriteGetObjectResponse |
API 사용 가이드
ListBuckets
프로젝트에 생성된 모든 버킷을 조회합니다.
API 호출 방식
메서드 | 요청 URL |
---|---|
GET | https://objectstorage.kr-central-2.kakaocloud.com/ |
Request Syntax
Request Header
Key | 유형 | 필수 여부 | 설명 |
---|---|---|---|
X-Amz-Security-Token | String | 필수 | AWS 보안 토큰 |
X-Amz-Content-Sha256 | String | 필수 | 콘텐츠의 SHA256 해시값 |
X-Amz-Date | String | 필수 | AWS 서비스 요청을 보낸 날짜와 시간 |
Authorization | String | 필수 | 요청에 서명된 AWS 서명 버전 4 헤더 - Credential: AWS 액세스 키 ID 및 자격 증명 범위 (필수) - SignedHeaders: 서명된 헤더 이름 목록 (필수) - Signature: 서명 값 (필수) |
Request Body
이 요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
<?xml version="1.0" encoding="UTF-8"?>
<ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
<DisplayName>String</DisplayName>
<ID>String</ID>
</Owner>
<Buckets>
<Bucket>
<Name>String</Name>
<CreationDate>Timestamp</CreationDate>
</Bucket>
</Buckets>
</ListAllMyBucketsResult>
Response Elements
Response | 유형 | 설명 |
---|---|---|
DisplayName | String | 사용자 ID |
ID | String | 사용자 고유 ID |
Name | String | 버킷 이름 |
CreationDate | Timestamp | 생성 날짜 |
HeadBucket
버킷의 존재 여부나 접근 권한이 있는지 확인하기 위해 HeadBuckets API를 사용할 수 있습니다.
API 호출 방식
메서드 | 요청 URL |
---|---|
Head | https://objectstorage.kr-central-2.kakaocloud.com/{BucketName} |
Request Syntax
Request Header
Key | 유형 | 필수 여부 | 설명 |
---|---|---|---|
X-Amz-Security-Token | String | 필수 | AWS 보안 토큰 |
X-Amz-Content-Sha256 | String | 필수 | 콘텐츠의 SHA256 해시값 |
X-Amz-Date | String | 필수 | AWS 서비스 요청을 보낸 날짜와 시간 |
Authorization | String | 필수 | 요청에 서명된 AWS 서명 버전 4 헤더 - Credential: AWS 액세스 키 ID 및 자격 증명 범위 (필수) - SignedHeaders: 서명된 헤더 이름 목록 (필수) - Signature: 서명 값 (필수) |
Request Body
이 요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
Response Headers
Key | 설명 |
---|---|
Date | Response 생성 시간 |
Content-Length | response의 body 크기 |
Connection | Connection 재사용 여부 |
X-Amz-Request-Id | Request 고유 ID |
X-Rgw-Bytes-Used | 생성 날짜 |
X-Rgw-Object-Count | Bucket 내 오브젝트 수 |
X-Rgw-Quota-Bucket-Objects | 미사용 |
X-Rgw-Quota-Bucket-Size | 미사용 |
X-Rgw-Quota-Max-Buckets | 미사용 |
X-Rgw-Quota-User-Objects | 미사용 |
X-Rgw-Quota-User-Size | 미사용 |
X-Content-Type-Options | MIME type sniffing을 막기 위한 보안용 헤더 |
X-Frame-Options | click-jacking을 막기 위한 보안용 헤더 |
X-XSS-Protection | Browser에서 XSS attack이 detection 되었을 때는 동작 방식을 나타내기 위한 보안용 헤더 |
Strict-Transport-Security | https 통신만 허용하게 하는 보안용 헤더 |
CreateBucket
버킷을 생성합니다.
API 호출 방식
메서드 | 요청 URL |
---|---|
PUT | https://objectstorage.kr-central-2.kakaocloud.com/{BucketName} |
Request Syntax
Request Header
Key | 유형 | 필수 여부 | 설명 |
---|---|---|---|
X-Amz-Security-Token | String | 필수 | AWS 보안 토큰 |
X-Amz-Content-Sha256 | String | 필수 | 콘텐츠의 SHA256 해시값 |
X-Amz-Date | String | 필수 | AWS 서비스 요청을 보낸 날짜와 시간 |
Authorization | String | 필수 | 요청에 서명된 AWS 서명 버전 4 헤더 - Credential: AWS 액세스 키 ID 및 자격 증명 범위 (필수) - SignedHeaders: 서명된 헤더 이름 목록 (필수) - Signature: 서명 값 (필수) |
Request Body
이 요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
DeleteBucket
버킷을 삭제합니다.
API 호출 방식
메서드 | 요청 URL |
---|---|
DELETE | https://objectstorage.kr-central-2.kakaocloud.com/{BucketName} |
Request Syntax
Request Header
Key | 유형 | 필수 여부 | 설명 |
---|---|---|---|
X-Amz-Security-Token | String | 필수 | AWS 보안 토큰 |
X-Amz-Content-Sha256 | String | 필수 | 콘텐츠의 SHA256 해시값 |
X-Amz-Date | String | 필수 | AWS 서비스 요청을 보낸 날짜와 시간 |
Authorization | String | 필수 | 요청에 서명된 AWS 서명 버전 4 헤더 - Credential: AWS 액세스 키 ID 및 자격 증명 범위 (필수) - SignedHeaders: 서명된 헤더 이름 목록 (필수) - Signature: 서명 값 (필수) |
Request Body
이 요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 204 응답을 받습니다.
GetBucketAcl
버킷의 접근 가능한 역할 권한 정보를 조회합니다.
API 호출 방식
메서드 | 요청 URL |
---|---|
GET | https://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/?acl |
Request Syntax
Request Header
Key | 유형 | 필수 여부 | 설명 |
---|---|---|---|
X-Amz-Security-Token | String | 필수 | AWS 보안 토큰 |
X-Amz-Content-Sha256 | String | 필수 | 콘텐츠의 SHA256 해시값 |
X-Amz-Date | String | 필수 | AWS 서비스 요청을 보낸 날짜와 시간 |
Authorization | String | 필수 | 요청에 서명된 AWS 서명 버전 4 헤더 - Credential: AWS 액세스 키 ID 및 자격 증명 범위 (필수) - SignedHeaders: 서명된 헤더 이름 목록 (필수) - Signature: 서명 값 (필수) |
Request Body
이 요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
<AccessControlPolicy>
<Owner>
<ID>string</ID>
<DisplayName>string</DisplayName>
</Owner>
<AccessControlList>
<Grant>
<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Group">
<ID>string</ID>
<DisplayName>string</DisplayName>
</Grantee>
<Permission>string</Permission>
</Grant>
</AccessControlList>
</AccessControlPolicy>
Response Elements
Response | 유형 | 설명 |
---|---|---|
DisplayName | String | 사용자 ID |
ID | String | 사용자 고유 ID |
xsi | String | - CanonicalUser - Group : 'AllUsers' 만 가능 |
Permission | String | - FULL_CONTROL - WRITE - WRITE_ACP - READ - READ_ACP |
PutBucketAcl
버킷의 접근 가능한 역할 권한을 설정합니다.
API 호출 방식
메서드 | 요청 URL |
---|---|
PUT | https://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/?acl |
Request Syntax
Request Header
Key | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Content-Type | String | 필수 | text/html |
X-Amz-Security-Token | String | 필수 | AWS 보안 토큰 |
X-Amz-Content-Sha256 | String | 필수 | 콘텐츠의 SHA256 해시값 |
X-Amz-Date | String | 필수 | AWS 서비스 요청을 보낸 날짜와 시간 |
Authorization | String | 필수 | 요청에 서명된 AWS 서명 버전 4 헤더 - Credential: AWS 액세스 키 ID 및 자격 증명 범위 (필수) - SignedHeaders: 서명된 헤더 이름 목록 (필수) - Signature: 서명 값 (필수) |
Request Body
<AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<AccessControlList>
<Grant>
<Grantee>
<DisplayName> String </DisplayName>
<ID> String </ID>
<xsi:type> String </xsi:type>
</Grantee>
<Permission> String </Permission>
</Grant>
</AccessControlList>
<Owner>
<DisplayName> String </DisplayName>
<ID> String </ID>
</Owner>
</AccessControlPolicy>
Request Elements
Request | 유형 | 필수 여부 | 설명 |
---|---|---|---|
DisplayName | String | 선택 | 사용자 ID |
ID | String | 선택 | 사용자 고유 ID |
xsi | String | 필수 | - CanonicalUser - Group : 'AllUsers' 만 가능 |
Permission | String | 선택 | - FULL_CONTROL - WRITE - WRITE_ACP - READ - READ_ACP |
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
GetBucketEncryption
버킷의 암호화 설정 정보를 조회합니다.
API 호출 방식
메서드 | 요청 URL |
---|---|
GET | https://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/?encryption |
Request Syntax
Request Header
Key | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Content-Type | String | 필수 | text/html |
X-Amz-Security-Token | String | 필수 | AWS 보안 토큰 |
X-Amz-Content-Sha256 | String | 필수 | 콘텐츠의 SHA256 해시값 |
X-Amz-Date | String | 필수 | AWS 서비스 요청을 보낸 날짜와 시간 |
Authorization | String | 필수 | 요청에 서명된 AWS 서명 버전 4 헤더 - Credential: AWS 액세스 키 ID 및 자격 증명 범위 (필수) - SignedHeaders: 서명된 헤더 이름 목록 (필수) - Signature: 서명 값 (필수) |
Request Body
이 요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
<?xml version="1.0" encoding="UTF-8"?>
<ServerSideEncryptionConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Rule>
<ApplyServerSideEncryptionByDefault>
<SSEAlgorithm>String</SSEAlgorithm>
</ApplyServerSideEncryptionByDefault>
</Rule>
</ServerSideEncryptionConfiguration>
Response Elements
Response | 유형 | 설명 |
---|---|---|
SSEAlgorithm | String | AES256 |
PutBucketEncryption
버킷 암호화를 설정합니다. (버킷에 오브젝트가 비어 있는 경우에만 설정이 가능합니다.)
API 호출 방식
메서드 | 요청 URL |
---|---|
PUT | https://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/?encryption |
Request Syntax
Request Header
Key | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Content-MD5 | String | 필수 | Request Body 내용을 서버 측 암호화 구성에 대한 MD5 다이제스트를 Base64로 인코딩한 값 |
Content-Type | String | 필수 | text/html |
X-Amz-Security-Token | String | 필수 | AWS 보안 토큰 |
X-Amz-Content-Sha256 | String | 필수 | 콘텐츠의 SHA256 해시값 |
X-Amz-Date | String | 필수 | AWS 서비스 요청을 보낸 날짜와 시간 |
Authorization | String | 필수 | 요청에 서명된 AWS 서명 버전 4 헤더 - Credential: AWS 액세스 키 ID 및 자격 증명 범위 (필수) - SignedHeaders: 서명된 헤더 이름 목록 (필수) - Signature: 서명 값 (필수) |
Request Body
<ServerSideEncryptionConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Rule>
<ApplyServerSideEncryptionByDefault>
<SSEAlgorithm>String</SSEAlgorithm>
</ApplyServerSideEncryptionByDefault>
</Rule>
</ServerSideEncryptionConfiguration>
Request Elements
Request | 유형 | 필수 여부 | 설명 |
---|---|---|---|
SSEAlgorithm | String | 필수 | AES256 |
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
GetBucketLifecycle
버킷 라이프 사이클 설정 정보를 조회합니다.
API 호출 방식
메서드 | 요청 URL |
---|---|
GET | https://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/?lifecycle |
Request Syntax
Request Header
Key | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Content-Type | String | 필수 | text/html |
X-Amz-Security-Token | String | 필수 | AWS 보안 토큰 |
X-Amz-Content-Sha256 | String | 필수 | 콘텐츠의 SHA256 해시값 |
X-Amz-Date | String | 필수 | AWS 서비스 요청을 보낸 날짜와 시간 |
Authorization | String | 필수 | 요청에 서명된 AWS 서명 버전 4 헤더 - Credential: AWS 액세스 키 ID 및 자격 증명 범위 (필수) - SignedHeaders: 서명된 헤더 이름 목록 (필수) - Signature: 서명 값 (필수) |
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Rule>
<Status>string</Status>
<Expiration>
<Days>integer</Days>
</Expiration>
<Filter>
<And>
<Prefix>string</Prefix>
<Tag>
<Key>string</Key>
<Value>string</Value>
</Tag>
</And>
</Filter>
<ID>string</ID>
</Rule>
</LifecycleConfiguration>
Response Elements
Response | 유형 | 설명 |
---|---|---|
Status | String | - Enabled - Disabled |
Days | integer | 객체 유지 기간 |
Prefix | String | 객체 이름 Prefix |
Key | String | 태그 키 |
Value | String | 태그 값 |
ID | String | LifeCycle 정책명 |
PutBucketLifecycle
버킷 라이프 사이클 규칙을 설정합니다.
API 호출 방식
메서드 | 요청 URL |
---|---|
PUT | https://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/?lifecycle |
Request Syntax
Request Header
Key | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Content-MD5 | String | 필수 | Request Body 내용을 서버 측 암호화 구성에 대한 MD5 다이제스트를 Base64로 인코딩한 값 |
Content-Type | String | 필수 | text/html |
X-Amz-Security-Token | String | 필수 | AWS 보안 토큰 |
X-Amz-Content-Sha256 | String | 필수 | 콘텐츠의 SHA256 해시값 |
X-Amz-Date | String | 필수 | AWS 서비스 요청을 보낸 날짜와 시간 |
Authorization | String | 필수 | 요청에 서명된 AWS 서명 버전 4 헤더 - Credential: AWS 액세스 키 ID 및 자격 증명 범위 (필수) - SignedHeaders: 서명된 헤더 이름 목록 (필수) - Signature: 서명 값 (필수) |
Request Body
<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Rule>
<Expiration>
<Days>integer</Days>
</Expiration>
<Filter>
<And>
<Prefix>string</Prefix>
<Tag>
<Key>string</Key>
<Value>string</Value>
</Tag>
</And>
</Filter>
<ID>string</ID>
<Status>string</Status>
</Rule>
</LifecycleConfiguration>
Request Elements
Request | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Status | String | 필수 | - Enabled - Disabled |
Days | integer | 선택 | 객체 유지 기간 |
Prefix | String | 필수 | 객체 이름 Prefix |
Key | String | 필수 | 태그 키 |
Value | String | 필수 | 태그값 |
ID | String | 선택 | LifeCycle 정책 명 |
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
DeleteBucketLifecycle
버킷의 모든 라이프 사이클 설정을 삭제합니다.
API 호출 방식
메서드 | 요청 URL |
---|---|
DELETE | https://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/?lifecycle |
Request Syntax
Request Header
Key | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Content-Type | String | 필수 | text/html |
X-Amz-Security-Token | String | 필수 | AWS 보안 토큰 |
X-Amz-Content-Sha256 | String | 필수 | 콘텐츠의 SHA256 해시값 |
X-Amz-Date | String | 필수 | AWS 서비스 요청을 보낸 날짜와 시간 |
Authorization | String | 필수 | 요청에 서명된 AWS 서명 버전 4 헤더 - Credential: AWS 액세스 키 ID 및 자격 증명 범위 (필수) - SignedHeaders: 서명된 헤더 이름 목록 (필수) - Signature: 서명 값 (필수) |
Request Body
이 요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 204 응답을 받습니다.
GetBucketLocation
버킷의 리전 정보를 조회합니다.
API 호출 방식
메서드 | 요청 URL |
---|---|
GET | https://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/?location |
Request Syntax
Request Header
Key | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Content-Type | String | 필수 | text/html |
X-Amz-Security-Token | String | 필수 | AWS 보안 토큰 |
X-Amz-Content-Sha256 | String | 필수 | 콘텐츠의 SHA256 해시값 |
X-Amz-Date | String | 필수 | AWS 서비스 요청을 보낸 날짜와 시간 |
Authorization | String | 필수 | 요청에 서명된 AWS 서명 버전 4 헤더 - Credential: AWS 액세스 키 ID 및 자격 증명 범위 (필수) - SignedHeaders: 서명된 헤더 이름 목록 (필수) - Signature: 서명 값 (필수) |
Request Body
이 요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
<?xml version="1.0" encoding="UTF-8"?>
<LocationConstraint xmlns="http://s3.amazonaws.com/doc/2006-03-01/">String</LocationConstraint>
Response Elements
Response | 유형 | 설명 |
---|---|---|
Region | String | 리전 정보 |
Getobject
버킷에 저장된 객체를 가져옵니다.
API 호출 방식
메서드 | 요청 URL |
---|---|
GET | https://objectstorage.kr-central-2.kakaocloud.com/{ObjectKey} |
Request Syntax
Request Header
Key | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Content-Type | String | 필수 | text/html |
X-Amz-Security-Token | String | 필수 | AWS 보안 토큰 |
X-Amz-Content-Sha256 | String | 필수 | 콘텐츠의 SHA256 해시값 |
X-Amz-Date | String | 필수 | AWS 서비스 요청을 보낸 날짜와 시간 |
Authorization | String | 필수 | 요청에 서명된 AWS 서명 버전 4 헤더 - Credential: AWS 액세스 키 ID 및 자격 증명 범위 (필수) - SignedHeaders: 서명된 헤더 이름 목록 (필수) - Signature: 서명 값 (필수) |
Request Body
이 요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다. 요청된 객체를 불러옵니다.
ListObjectsV2
버킷의 객체 리스트를 조회합니다.
API 호출 방식
메서드 | 요청 URL |
---|---|
GET | https://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/?list-type=2 |
Request Syntax
Request Header
Key | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Content-Type | String | 필수 | text/html |
X-Amz-Security-Token | String | 필수 | AWS 보안 토큰 |
X-Amz-Content-Sha256 | String | 필수 | 콘텐츠의 SHA256 해시값 |
X-Amz-Date | String | 필수 | AWS 서비스 요청을 보낸 날짜와 시간 |
Authorization | String | 필수 | 요청에 서명된 AWS 서명 버전 4 헤더 - Credential: AWS 액세스 키 ID 및 자격 증명 범위 (필수) - SignedHeaders: 서명된 헤더 이름 목록 (필수) - Signature: 서명 값 (필수) |
Request Body
이 요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Tenant>String</Tenant>
<Name>String</Name>
<Prefix>String</Prefix>
<MaxKeys>Integer</MaxKeys>
<IsTruncated>Boolean</IsTruncated>
<Contents>
<Key>String</Key>
<LastModified>Timestamp</LastModified>
<ETag>String</ETag>
<Size>Long</Size>
<StorageClass>String</StorageClass>
</Contents>
<KeyCount>Integer</KeyCount>
</ListBucketResult>
Response Elements
Response | 유형 | 설명 |
---|---|---|
Tenant | String | 프로젝트 ID |
Name | String | 버킷 이름 |
Prefix | String | 접두사 |
MaxKeys | Integer | 응답에 반환되는 Key의 최대 수를 설정하는 매개 변수 |
IsTruncated | Boolean | false : Key가 모두 반환됨, True : 더 많은 Key가 반환 가능함 |
Key | String | 객체 키 |
LastModified | Timestamp | 객체 생성 일시 |
ETag | String | 객체의 해시값 |
Size | Long | 객체 크기 |
StorageClass | String | 객체를 저장하고 있는 스토리지 클래스 |
KeyCount | Integer | 요청으로 반환된 키의 개수 |
HeadObject
객체 Head 정보를 조회합니다.
API 호출 방식
메서드 | 요청 URL |
---|---|
HEAD | https://objectstorage.kr-central-2.kakaocloud.com/{ObjectKey} |
Request Syntax
Request Header
Key | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Content-Type | String | 필수 | text/html |
X-Amz-Security-Token | String | 필수 | AWS 보안 토큰 |
X-Amz-Content-Sha256 | String | 필수 | 콘텐츠의 SHA256 해시값 |
X-Amz-Date | String | 필수 | AWS 서비스 요청을 보낸 날짜와 시간 |
Authorization | String | 필수 | 요청에 서명된 AWS 서명 버전 4 헤더 - Credential: AWS 액세스 키 ID 및 자격 증명 범위 (필수) - SignedHeaders: 서명된 헤더 이름 목록 (필수) - Signature: 서명 값 (필수) |
Request Body
이 요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
Response Header
Key | 설명 |
---|---|
Date | response 생성 시간 |
Content-Type | body에 담긴 content의 형식 |
Content-Length | Object 크기 |
Connection | connection 재활용 여부 |
Accept-Ranges | 클라이언트가 원하는 파일의 일부분을 바이트 단위로 요청할 수 있음 |
Etag | 웹 서버가 리소스의 내용이나 메타데이터가 변경되었는지를 식별하기 위한 식별자 |
Last-Modified | 마지막 수정일 |
X-Amz-Expiration | Lifecycle에 의해 지정된 만료일 |
X-Amz-Request-Id | Request 고유 ID |
X-Rgw-Object-Type | RGW에서 처리하는 Object 유형 : normal만 사용 |
X-Content-Type-Options | MIME type sniffing을 막기 위한 보안용 헤더 |
X-Frame-Options | click-jacking을 막기 위한 보안용 헤더 |
X-XSS-Protection | Browser에서 XSS attack이 detection 되었을 때는 동작 방식을 나타내기 위한 보안용 헤더 |
Strict-Transport-Security | https 통신만 허용하게 하는 보안용 헤더 |
PutObject
버킷에 단일 객체를 업로드합니다.
API 호출 방식
메서드 | 요청 URL |
---|---|
PUT | https://objectstorage.kr-central-2.kakaocloud.com/{ObjectKey} |
Request Syntax
Request Header
Key | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Content-Type | String | 필수 | text/html |
X-Amz-Security-Token | String | 필수 | AWS 보안 토큰 |
X-Amz-Content-Sha256 | String | 필수 | 콘텐츠의 SHA256 해시값 |
X-Amz-Date | String | 필수 | AWS 서비스 요청을 보낸 날짜와 시간 |
Authorization | String | 필수 | 요청에 서명된 AWS 서명 버전 4 헤더 - Credential: AWS 액세스 키 ID 및 자격 증명 범위 (필수) - SignedHeaders: 서명된 헤더 이름 목록 (필수) - Signature: 서명 값 (필수) |
X-Amz-Tagging | String | 필수 | 객체 태그값 (선택) ex) Key1=Value1&Key2=Value2 |
X-Amz-meta-key | String | 필수 | 메타 데이터값 (선택) ex) key = 메타데이터 Key 이름, Value = 메타 데이터값 |
Request Body
업로드할 파일의 Binary Data
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
CopyObject
버킷에 객체를 복사합니다.
API 호출 방식
메서드 | 요청 URL |
---|---|
PUT | https://objectstorage.kr-central-2.kakaocloud.com/{ObjectKey} |
Request Syntax
Request Header
Key | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Content-Type | String | 필수 | text/html |
X-Amz-Security-Token | String | 필수 | AWS 보안 토큰 |
X-Amz-Content-Sha256 | String | 필수 | 콘텐츠의 SHA256 해시값 |
X-Amz-Date | String | 필수 | AWS 서비스 요청을 보낸 날짜와 시간 |
Authorization | String | 필수 | 요청에 서명된 AWS 서명 버전 4 헤더 - Credential: AWS 액세스 키 ID 및 자격 증명 범위 (필수) - SignedHeaders: 서명된 헤더 이름 목록 (필수) - Signature: 서명 값 (필수) |
x-amz-copy-source | String | 필수 | 복사 대상이 되는 객체 키 (필수) |
Request Body
이 요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
<CopyObjectResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<ETag>String</ETag>
<LastModified>Timestamp</LastModified>
</CopyObjectResult>
Response Elements
Response | 유형 | 설명 |
---|---|---|
ETag | String | 객체의 해시값 |
LastModified | Timestamp | 객체 생성 일시 |
DeleteObject
단일 객체를 삭제합니다.
API 호출 방식
메서드 | 요청 URL |
---|---|
DELETE | https://objectstorage.kr-central-2.kakaocloud.com/{ObjectKey} |
Request Syntax
Request Header
Key | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Content-Type | String | 필수 | text/html |
X-Amz-Security-Token | String | 필수 | AWS 보안 토큰 |
X-Amz-Content-Sha256 | String | 필수 | 콘텐츠의 SHA256 해시값 |
X-Amz-Date | String | 필수 | AWS 서비스 요청을 보낸 날짜와 시간 |
Authorization | String | 필수 | 요청에 서명된 AWS 서명 버전 4 헤더 - Credential: AWS 액세스 키 ID 및 자격 증명 범위 (필수) - SignedHeaders: 서명된 헤더 이름 목록 (필수) - Signature: 서명 값 (필수) |
Request Body
요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 204 응답을 받습니다. HTTP/1.1 204
DeleteObjects
객체를 벌크 삭제합니다.
API 호출 방식
메서드 | 요청 URL |
---|---|
POST | https://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/?delete |
Request Syntax
Request Header
Key | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Content-Type | String | 필수 | text/html |
X-Amz-Security-Token | String | 필수 | AWS 보안 토큰 |
X-Amz-Content-Sha256 | String | 필수 | 콘텐츠의 SHA256 해시값 |
X-Amz-Date | String | 필수 | AWS 서비스 요청을 보낸 날짜와 시간 |
Authorization | String | 필수 | 요청에 서명된 AWS 서명 버전 4 헤더 - Credential: AWS 액세스 키 ID 및 자격 증명 범위 (필수) - SignedHeaders: 서명된 헤더 이름 목록 (필수) - Signature: 서명 값 (필수) |
Request Body
삭제할 객체 키를 Body에 입력합니다.
<Delete xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Object>
<Key>String</Key>
</Object>
<Object>
<Key>String</Key>
</Object>
</Delete>
Request Elements
Request | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Key | String | 필수 | 객체 키 |
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
<DeleteResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Deleted>
<Key>String</Key>
</Deleted>
<Deleted>
<Key>String</Key>
</Deleted>
</DeleteResult>
Response Elements
Response | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Key | String | 필수 | 객체 키 |
CreateMultipartUpload
멀티파트 업로드를 시작하고, Upload ID를 응답합니다. Upload ID는 멀티파트 업로드의 모든 파트와 연관시키는데 사용합니다.
API 호출 방식
메서드 | 요청 URL |
---|---|
POST | https://objectstorage.kr-central-2.kakaocloud.com/{ObjectKey}/?uploads |
Request Syntax
Request Header
Key | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Content-Type | String | 필수 | text/html |
X-Amz-Security-Token | String | 필수 | AWS 보안 토큰 |
X-Amz-Content-Sha256 | String | 필수 | 콘텐츠의 SHA256 해시값 |
X-Amz-Date | String | 필수 | AWS 서비스 요청을 보낸 날짜와 시간 |
Authorization | String | 필수 | 요청에 서명된 AWS 서명 버전 4 헤더 - Credential: AWS 액세스 키 ID 및 자격 증명 범위 (필수) - SignedHeaders: 서명된 헤더 이름 목록 (필수) - Signature: 서명 값 (필수) |
Request Body
요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
<InitiateMultipartUploadResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Tenant>String</Tenant>
<Bucket>String</Bucket>
<Key>multipart2</Key>
<UploadId>2~7HdUyr3lqN3Ze9MwWxCyxqGBVc_2BoU</UploadId>
</InitiateMultipartUploadResult>
Response Elements
Response | 유형 | 설명 |
---|---|---|
Tenant | String | 프로젝트 ID |
Bucket | String | 버킷 이름 |
Key | String | 업로드할 객체 키 |
UploadId | String | 멀티파트 업로드 ID |
UploadPart
멀티파트 업로드에 하나의 파트를 업로드합니다.
API 호출 방식
메서드 | 요청 URL |
---|---|
PUT | https://objectstorage.kr-central-2.kakaocloud.com/{ObjectKey}?partNumber={Number}&uploadId={UploadID} |
Request Syntax
Request Header
Key | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Content-Type | String | 필수 | text/html |
X-Amz-Security-Token | String | 필수 | AWS 보안 토큰 |
X-Amz-Content-Sha256 | String | 필수 | 콘텐츠의 SHA256 해시값 |
X-Amz-Date | String | 필수 | AWS 서비스 요청을 보낸 날짜와 시간 |
Authorization | String | 필수 | 요청에 서명된 AWS 서명 버전 4 헤더 - Credential: AWS 액세스 키 ID 및 자격 증명 범위 (필수) - SignedHeaders: 서명된 헤더 이름 목록 (필수) - Signature: 서명 값 (필수) |
Request Body
요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
ListParts
특정 멀티파트 업로드에 업로드된 파트들을 조회합니다.
API 호출 방식
메서드 | 요청 URL |
---|---|
GET | https://objectstorage.kr-central-2.kakaocloud.com/{ObjectKey}?uploadId={UploadID} |
Request Syntax
Request Header
Key | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Content-Type | String | 필수 | text/html |
X-Amz-Security-Token | String | 필수 | AWS 보안 토큰 |
X-Amz-Content-Sha256 | String | 필수 | 콘텐츠의 SHA256 해시값 |
X-Amz-Date | String | 필수 | AWS 서비스 요청을 보낸 날짜와 시간 |
Authorization | String | 필수 | 요청에 서명된 AWS 서명 버전 4 헤더 - Credential: AWS 액세스 키 ID 및 자격 증명 범위 (필수) - SignedHeaders: 서명된 헤더 이름 목록 (필수) - Signature: 서명 값 (필수) |
Request Body
요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
<ListPartsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Tenant>String</Tenant>
<Bucket>String</Bucket>
<Key>String</Key>
<UploadId>String</UploadId>
<StorageClass>String</StorageClass>
<PartNumberMarker>Integer</PartNumberMarker>
<NextPartNumberMarker>Integer</NextPartNumberMarker>
<MaxParts>Integer</MaxParts>
<IsTruncated>Boolean</IsTruncated>
<Owner>
<ID>String</ID>
<DisplayName>String</DisplayName>
</Owner>
<Part>
<LastModified>Timestamp</LastModified>
<PartNumber>Integer</PartNumber>
<ETag>String</ETag>
<Size>Long</Size>
</Part>
<Part>
<LastModified>Timestamp</LastModified>
<PartNumber>Integer</PartNumber>
<ETag>String</ETag>
<Size>Long</Size>
</Part>
<Part>
<LastModified>Timestamp</LastModified>
<PartNumber>Integer</PartNumber>
<ETag>String</ETag>
<Size>Long</Size>
</Part>
</ListPartsResult>
Response Elements
Response | 유형 | 설명 |
---|---|---|
Tenant | String | 프로젝트 ID |
Bucket | String | 버킷 이름 |
Key | String | 업로드할 객체 키 |
UploadId | String | 멀티파트 업로드 ID |
StorageClass | String | 스토리지 클래스 |
PartNumberMarker | String | 나열의 시작되는 값, PartNumber가 더 높은 part만 나열됨 |
NextPartNumberMarker | String | 목록의 마지막 part를 지정하는 값 |
MaxParts | String | 응답에 허용된 최대 part 수 |
IsTruncated | String | Part 목록이 잘렸는지 여부 |
ID | String | 프로젝트 ID |
DisplayName | String | 프로젝트 이름 |
LastModified | String | Part의 업로드된 시간 |
PartNumber | String | Part 식별 번호, 1 ~ 10000의 양의 정수 |
ETag | String | 업로드된 Part의 Entity Tag |
Size | String | 업로드된 Part의 크기 |
ListMultipartUploads
버킷에 진행 중인 멀티파트 업로드들을 리스팅합니다. 진행 중인 멀티파트 업로드는 CreateMultipartUpload 요청으로 시작되었고 아직 완료 또는 중지되지 않은 MultipartUpload입니다.
API 호출 방식
메서드 | 요청 URL |
---|---|
GET | https://objectstorage.kr-central-2.kakaocloud.com/{Buckets}?uploads&max-uploads={number} |
Request Syntax
Request Header
Key | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Content-Type | String | 필수 | text/html |
X-Amz-Security-Token | String | 필수 | AWS 보안 토큰 |
X-Amz-Content-Sha256 | String | 필수 | 콘텐츠의 SHA256 해시값 |
X-Amz-Date | String | 필수 | AWS 서비스 요청을 보낸 날짜와 시간 |
Authorization | String | 필수 | 요청에 서명된 AWS 서명 버전 4 헤더 - Credential: AWS 액세스 키 ID 및 자격 증명 범위 (필수) - SignedHeaders: 서명된 헤더 이름 목록 (필수) - Signature: 서명 값 (필수) |
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 | 멀티파트 업로드 시작 일시 |
UploadPartCopy
CreateMultipartUpload에 업로드 Part시 Bucket에 있는 오브젝트를 다음 PartNumber에 업로드할 수 있습니다.
API 호출 방식
메서드 | 요청 URL |
---|---|
PUT | https://objectstorage.kr-central-2.kakaocloud.com/{ObjectKey}?partNumber={number}&uploadId={UploadID} |
Request Syntax
Request Header
Key | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Content-Type | String | 필수 | text/html |
X-Amz-Security-Token | String | 필수 | AWS 보안 토큰 |
X-Amz-Content-Sha256 | String | 필수 | 콘텐츠의 SHA256 해시값 |
X-Amz-Date | String | 필수 | AWS 서비스 요청을 보낸 날짜와 시간 |
x-amz-copy-source | String | 필수 | Upload Part 대상의 객체 키 |
Authorization | String | 필수 | 요청에 서명된 AWS 서명 버전 4 헤더 - Credential: AWS 액세스 키 ID 및 자격 증명 범위 (필수) - SignedHeaders: 서명된 헤더 이름 목록 (필수) - Signature: 서명 값 (필수) |
Request Body
요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
<?xml version="1.0" encoding="UTF-8"?>
<CopyPartResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<LastModified>Timestamp</LastModified>
<ETag>String</ETag>
</CopyPartResult>
Response Elements
Response | 유형 | 설명 |
---|---|---|
LastModified | Timestamp | 객체 업로드 일시 |
ETag | String | 객체의 해시값 |
CompleteMultipartUpload
CreateMultipartUpload에 업로드 Part가 완료 되었다면 CompleteMultipartUpload를 통하여 완료 시킬 수 있다. 이전에 업로드된 Part들을 조립하여 멀티파트 업로드를 완료 한다.
API 호출 방식
메서드 | 요청 URL |
---|---|
POST | https://objectstorage.kr-central-2.kakaocloud.com/{ObjectKey}?&uploadId={UploadID} |
Request Syntax
Request Header
Key | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Content-Type | String | 필수 | text/html |
X-Amz-Security-Token | String | 필수 | AWS 보안 토큰 |
X-Amz-Content-Sha256 | String | 필수 | 콘텐츠의 SHA256 해시값 |
X-Amz-Date | String | 필수 | AWS 서비스 요청을 보낸 날짜와 시간 |
Authorization | String | 필수 | 요청에 서명된 AWS 서명 버전 4 헤더 - Credential: AWS 액세스 키 ID 및 자격 증명 범위 (필수) - SignedHeaders: 서명된 헤더 이름 목록 (필수) - Signature: 서명 값 (필수) |
Request Body
<CompleteMultipartUpload xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Part>
<ETag>String</ETag>
<PartNumber>Integer</PartNumber>
</Part>
...
</CompleteMultipartUpload>
Request Elements
Request | 유형 | 필수 여부 | 설명 |
---|---|---|---|
ETag | String | 선택 | 객체의 해시값 |
PartNumber | Integer | 선택 | 파트 식별 번호 (1 - 10,000 사이의 양의 정수) |
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
<?xml version="1.0" encoding="UTF-8"?>
<CompleteMultipartUploadResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Location>String</Location>
<Tenant>String</Tenant>
<Bucket>String</Bucket>
<Key>String</Key>
<ETag>String</ETag>
</CompleteMultipartUploadResult>
Response Elements
Response | 유형 | 설명 |
---|---|---|
Location | String | 새로 생성된 객체를 식별하는 URI 값 |
Tenant | String | 프로젝트 ID |
Bucket | String | 버킷 이름 |
Key | String | 객체 키 |
ETag | String | 객체의 해시값 |
AbortMultipartUpload
Multipart Upload를 중단합니다. Multipart Upload가 중단된 후에는 해당 Upload ID를 사용하여 추가 Part를 업로드할 수 없습니다.
API 호출 방식
메서드 | 요청 URL |
---|---|
DELETE | https://objectstorage.kr-central-2.kakaocloud.com/{ObjectKey}?&uploadId={UploadID} |
Request Syntax
Request Header
Key | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Content-Type | String | 필수 | text/html |
X-Amz-Security-Token | String | 필수 | AWS 보안 토큰 |
X-Amz-Content-Sha256 | String | 필수 | 콘텐츠의 SHA256 해시값 |
X-Amz-Date | String | 필수 | AWS 서비스 요청을 보낸 날짜와 시간 |
Authorization | String | 필수 | 요청에 서명된 AWS 서명 버전 4 헤더 - Credential: AWS 액세스 키 ID 및 자격 증명 범위 (필수) - SignedHeaders: 서명된 헤더 이름 목록 (필수) - Signature: 서명 값 (필수) |
Request Body
요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 204 응답을 받습니다.
GetObjectTagging
오브젝트의 태그를 조회합니다.
API 호출 방식
메서드 | 요청 URL |
---|---|
GET | https://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/{ObjectKey}?tagging |
Request Syntax
Request Header
Key | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Content-Type | String | 필수 | text/html |
X-Amz-Security-Token | String | 필수 | AWS 보안 토큰 |
X-Amz-Content-Sha256 | String | 필수 | 콘텐츠의 SHA256 해시값 |
X-Amz-Date | String | 필수 | AWS 서비스 요청을 보낸 날짜와 시간 |
Authorization | String | 필수 | 요청에 서명된 AWS 서명 버전 4 헤더 - Credential: AWS 액세스 키 ID 및 자격 증명 범위 (필수) - SignedHeaders: 서명된 헤더 이름 목록 (필수) - Signature: 서명 값 (필수) |
Request Body
요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
<?xml version="1.0" encoding="UTF-8"?>
<Tagging xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<TagSet>
<Tag>
<Key>String</Key>
<Value>String</Value>
</Tag>
</TagSet>
</Tagging>
Response Elements
Response | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Key | String | 필수 | 객체 태그 키 |
Value | String | 필수 | 객체 태그 키의 값 |
PutObjectTagging
오브젝트의 태그를 추가합니다. 기존 태그값을 덮어씁니다.
API 호출 방식
메서드 | 요청 URL |
---|---|
PUT | https://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/{ObjectKey}?tagging |
Request Syntax
Request Header
Key | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Content-Type | String | 필수 | text/html |
X-Amz-Security-Token | String | 필수 | AWS 보안 토큰 |
X-Amz-Content-Sha256 | String | 필수 | 콘텐츠의 SHA256 해시값 |
X-Amz-Date | String | 필수 | AWS 서비스 요청을 보낸 날짜와 시간 |
Authorization | String | 필수 | 요청에 서명된 AWS 서명 버전 4 헤더 - Credential: AWS 액세스 키 ID 및 자격 증명 범위 (필수) - SignedHeaders: 서명된 헤더 이름 목록 (필수) - Signature: 서명 값 (필수) |
Request Body
<Tagging xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<TagSet>
<Tag>
<Key>String</Key>
<Value>String</Value>
</Tag>
</TagSet>
</Tagging>
Request Elements
Request | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Key | String | 필수 | 객체 태그 키 |
Value | String | 필수 | 객체 태그 키의 값 |
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.
DeleteObjectTagging
오브젝트의 태그를 삭제합니다.
API 호출 방식
메서드 | 요청 URL |
---|---|
DELETE | https://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/{ObjectKey}?tagging |
Request Syntax
Request Header
Key | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Content-Type | String | 필수 | text/html |
X-Amz-Security-Token | String | 필수 | AWS 보안 토큰 |
X-Amz-Content-Sha256 | String | 필수 | 콘텐츠의 SHA256 해시값 |
X-Amz-Date | String | 필수 | AWS 서비스 요청을 보낸 날짜와 시간 |
Authorization | String | 필수 | 요청에 서명된 AWS 서명 버전 4 헤더 - Credential: AWS 액세스 키 ID 및 자격 증명 범위 (필수) - SignedHeaders: 서명된 헤더 이름 목록 (필수) - Signature: 서명 값 (필수) |
Request Body
요청은 Body 값을 가지지 않습니다.
Response Syntax
동작에 성공하면, 서비스는 HTTP 200 응답을 받습니다.