S3
카카오클라우드의 Object Storage는 S3 API와 호환성을 제공합니다.
API 사용 준비
API를 호출하기 위해 필요한 사전 작업은 API 사용 준비 문서를 참고하시기 바랍니다.
호환 가능한 S3 CLI 버전
카카오클라우드에서 호환 가능한 S3 CLI의 최신 버전은 2.22.0
입니다.
2.22.0
보다 상위 버전을 사용할 경우, S3 명령 요청의 정상 작동이 보장되지 않을 수 있습니다.
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 응답을 받습니다.