Skip to main content

S3

KakaoCloud's Object Storage provides compatibility with the S3 API.

Before you start​

For prerequisites required to use the API, refer to the API preparation guide.

Compatible S3 tools and SDK versions​

KakaoCloud supports compatibility with the following versions of S3 SDKs and CLI tools.
Using versions higher than listed may result in failed requests.

ToolMaximum compatible version
S3 CLI2.22.0
Python boto31.35.99
JavaScript SDKv3.726.1

Authentication​

Get S3 Access Key​

You can issue an S3 Access Key and use it as the credential for AWS Signature.

info

S3 Access Keys can be issued for service accounts and user accounts. For details, see the following guides.

Get temporary credentials key​

Currently, only AssumeRoleWithWebIdentity is supported. You can issue temporary credentials with the same permissions as the token user using an OpenStack token. The issued credentials inherit the roles of the project where the token was issued.

API call method​
MethodRequest URL
POSThttps://objectstorage.{region_name}.kakaocloud.com/
Request Syntax​
Temporary credentials 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}"
}'
MethodRequest URL
POSThttps://objectstorage.kr-central-2.kakaocloud.com/
Request elements​
QueryTypeRequiredDescription
ActionStringYesType of action to perform. Only AssumeRoleWithWebIdentity is supported.
DurationSecondsIntNoValidity duration for the temporary credentials (in seconds)
ProviderIdStringNoIdentity provider, currently only iam.kakaocloud.com is supported
WebIdentityTokenStringYesToken issued by OpenStack
Response Syntax​
Temporary credentials 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​
FieldTypeDescription
user_idStringCloud account used by the temporary credentials
session_tokenStringTemporary session token
session_secret_keyStringSecret access key for the session
session_access_keyStringAccess key ID for the session
expirationTimestampExpiration time of the temporary credentials

HTTP status codes

HTTP StatusMessageDescription
200OKSuccess
400BadRequestInvalid request format or parameters
403ForbiddenPermission denied

Using temporary credentials with S3 requests

Refer to AWS documentation on using temporary credentials with S3.

Issue credentials​

You can issue EC2-style credentials via OpenStack's EC2 credential command.

Request Syntax

Issue EC2 credential
openstack ec2 credentials create --project {project-id}
ArgumentTypeRequiredDescription
project_idStringYesID of the project to issue credentials for

Response Syntax

Credential issuance response
+------------+-----------------+
| Field | Value |
+------------+-----------------+
| access | {access_key_id} |
| project_id | {project_id} |
| secret | {secret_key} |
| user_id | {user_id} |
+------------+-----------------+

Response elements

FieldTypeDescription
access_key_idStringUse as aws_access_key_id
secret_keyStringUse as aws_secret_access_key
user_idStringID of the user who issued the credential
project_idStringThe project ID the credential is valid for

The issued access and secret can be used as AWS credentials.

AWS Signature​

AWS Signature is a digital signature required to authenticate requests when calling S3 APIs. When accessing S3 APIs directly through HTTP requests, AWS requires Signature Version 4 (SigV4) to verify the request.

AWS SDKs or CLIs handle signatures automatically. When calling S3 APIs directly over HTTP, such as with curl or Postman, you must generate AWS Signature manually.

AWS Signature is included in the S3 API Authorization header.

Create AWS Signature​

Create a Signature Version 4 value and include it in the Authorization header when sending the request.

Supported features

Note: The ExpectedOwner feature is not supported.

S3 API support by region​

info

When using CORS features or accessing a publicly available bucket via the S3 endpoint, include your project ID in the URL as shown:

S3 API endpoint format
https://objectstorage.kr-central-2.kakaocloud.com/{project-id}:{bucket-name}/{object-path}
FeatureAPI supportedDescription
ListBucketsSupported
SecurityTokenServicePartially supportedAssumeRoleWithWebIdentity only
HeadBucketSupported
GetBucketAccelerateConfiguration
GetBucketAclSupported
GetBucketAnalyticsConfiguration
ListBucketAnalyticsConfigurations
GetBucketCors
GetBucketEncryptionSupported
GetBucketIntelligentTieringConfiguration
ListBucketIntelligentTieringConfigurations
GetBucketInventoryConfiguration
ListBucketInventoryConfigurations
GetBucketLifecycleSupported
GetBucketLifecycleConfigurationSupported
GetBucketLocationSupported
GetBucketLoggingSupported
GetBucketMetricsConfiguration
ListBucketMetricsConfigurations
GetBucketNotification
GetBucketNotificationConfiguration
GetBucketOwnershipControls
GetBucketPolicy
GetBucketPolicyStatus
GetBucketReplication
GetBucketRequestPayment
GetBucketTagging
GetBucketVersioning
GetBucketWebsite
ListObjectVersions
ListObjectsV2Supported
GetObjectLockConfiguration
GetPublicAccessBlock
ListMultipartUploadsSupported
ListObjectsSupported
PutBucketAccelerateConfiguration
PutBucketAclPartially supportedSupports only cloud account and AllUsers URI-based settings
PutBucketAnalyticsConfiguration
PutBucketCors
PutBucketEncryptionPartially supportedCan be configured only when the bucket is empty
PutBucketIntelligentTieringConfiguration
PutBucketInventoryConfiguration
PutBucketLifecyclePartial Supported
PutBucketLifecycleConfigurationPartial Supported
PutBucketLoggingSupported
PutBucketMetricsConfiguration
PutBucketNotification
PutBucketNotificationConfiguration
PutBucketOwnershipControls
PutBucketPolicy
PutBucketReplication
PutBucketRequestPayment
PutBucketTagging
PutBucketVersioning
PutBucketWebsite
PutObjectLockConfiguration
PutPublicAccessBlock
CreateBucketSupported
DeleteBucketAnalyticsConfiguration
DeleteBucketCors
DeleteBucketEncryption
DeleteBucketIntelligentTieringConfiguration
DeleteBucketInventoryConfiguration
DeleteBucketLifecycleSupported
DeleteBucketLifecycleConfigurationSupported
DeleteBucketMetricsConfiguration
DeleteBucketOwnershipControls
DeleteBucketPolicy
DeleteBucketReplication
DeleteBucketTagging
DeleteBucketWebsite
DeletePublicAccessBlock
DeleteBucketSupported
DeleteObjectsSupported
HeadObjectSupported
GetObjectAcl
GetObjectAttributes
GetObjectLegalHold
GetObjectRetention
GetObjectTaggingSupported
GetObjectTorrent
ListPartsSupported
GetObjectSupported
PutObjectAcl
PutObjectLegalHold
PutObjectRetention
PutObjectTaggingSupported
UploadPartCopySupported
UploadPartSupported
CopyObjectSupported
PutObjectSupported
AbortMultipartUploadSupported
DeleteObjectTaggingSupported
DeleteObjectSupported
CompleteMultipartUploadSupported
CreateMultipartUploadSupported
RestoreObject
SelectObjectContent
WriteGetObjectResponse

API guide​

ListBuckets​

Retrieves all buckets created within a project.

API call method​

MethodRequest URL
GEThttps://objectstorage.kr-central-2.kakaocloud.com/
Path Parameters​
VariableDescription
Region_NameService region name (example: kr-central-2)
Bucket_NameTarget bucket name
Object_KeyTarget object key
Request Syntax​
Request Header​
KeyTypeRequiredDescription
X-Amz-Security-TokenStringRequiredAWS security token
X-Amz-Content-Sha256StringRequiredSHA256 hash value of the request content
X-Amz-DateStringRequiredDate and time of the AWS service request
AuthorizationStringRequiredAWS Signature Version 4 header
- Credential: AWS access key ID and scope (required)
- SignedHeaders: list of signed header names (required)
- Signature: the calculated signature value (required)
Request Body​

This request does not include a body.

Response Syntax​

If the operation succeeds, the service responds with HTTP 200 OK.

ListBuckets response syntax
<?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​
ElementTypeDescription
DisplayNameStringCloud account
IDStringUser ID
NameStringBucket name
CreationDateTimestampDate the bucket was created

HeadBucket​

Checks whether a bucket exists and whether the caller has access to it.

API call method​

MethodRequest URL
HEADhttps://objectstorage.kr-central-2.kakaocloud.com/{BucketName}
Path Parameters​
VariableDescription
Region_NameService region name (example: kr-central-2)
Bucket_NameTarget bucket name
Object_KeyTarget object key
Request Syntax​
Request Header​
KeyTypeRequiredDescription
X-Amz-Security-TokenStringRequiredAWS security token
X-Amz-Content-Sha256StringRequiredSHA256 hash value of the request content
X-Amz-DateStringRequiredDate and time of the AWS service request
AuthorizationStringRequiredAWS Signature Version 4 header
- Credential: AWS access key ID and scope (required)
- SignedHeaders: list of signed header names (required)
- Signature: the calculated signature value (required)
Request Body​

This request does not include a body.

Response Syntax​

If the operation succeeds, the service responds with HTTP 200 OK.

Response Headers​
HeaderDescription
DateTime the response was generated
Content-LengthSize of the response body
ConnectionWhether the connection can be reused
X-Amz-Request-IdUnique request ID
X-Rgw-Bytes-UsedTotal bytes used
X-Rgw-Object-CountNumber of objects in the bucket
X-Rgw-Quota-Bucket-ObjectsNot in use
X-Rgw-Quota-Bucket-SizeNot in use
X-Rgw-Quota-Max-BucketsNot in use
X-Rgw-Quota-User-ObjectsNot in use
X-Rgw-Quota-User-SizeNot in use
X-Content-Type-OptionsSecurity header to prevent MIME type sniffing
X-Frame-OptionsSecurity header to prevent clickjacking
X-XSS-ProtectionSecurity header to detect and mitigate XSS attacks
Strict-Transport-SecuritySecurity header to enforce HTTPS communication only

CreateBucket​

Creates a bucket.

API call method​

MethodRequest URL
PUThttps://objectstorage.kr-central-2.kakaocloud.com/{BucketName}
Path Parameters​
VariableDescription
Region_NameService region name (example: kr-central-2)
Bucket_NameTarget bucket name
Object_KeyTarget object key
Request Syntax​
Request Header​
KeyTypeRequiredDescription
X-Amz-Security-TokenStringRequiredAWS security token
X-Amz-Content-Sha256StringRequiredSHA256 hash of the content
X-Amz-DateStringRequiredDate and time the request is sent to the AWS service
AuthorizationStringRequiredAWS Signature Version 4 authorization header
- Credential: AWS access key ID and credential scope (required)
- SignedHeaders: list of signed headers (required)
- Signature: signature value (required)
Request Body​

This request does not contain a body.

Response Syntax​

On success, the service returns an HTTP 200 response.

DeleteBucket​

Deletes a bucket.

API call method​

MethodRequest URL
DELETEhttps://objectstorage.kr-central-2.kakaocloud.com/{BucketName}
Path Parameters​
VariableDescription
Region_NameService region name (example: kr-central-2)
Bucket_NameTarget bucket name
Object_KeyTarget object key
Request Syntax​
Request Header​
KeyTypeRequiredDescription
X-Amz-Security-TokenStringRequiredAWS security token
X-Amz-Content-Sha256StringRequiredSHA256 hash of the content
X-Amz-DateStringRequiredDate and time the request is sent to the AWS service
AuthorizationStringRequiredAWS Signature Version 4 authorization header
- Credential: AWS access key ID and credential scope (required)
- SignedHeaders: list of signed headers (required)
- Signature: signature value (required)
Request Body​

This request does not contain a body.

Response Syntax​

On success, the service returns an HTTP 204 response.

GetBucketAcl​

Retrieves the role-based access control (ACL) configuration of a bucket.

API call method​

MethodRequest URL
GEThttps://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/?acl
Path Parameters​
VariableDescription
Region_NameService region name (example: kr-central-2)
Bucket_NameTarget bucket name
Object_KeyTarget object key
Request Syntax​
Request Header​
KeyTypeRequiredDescription
X-Amz-Security-TokenStringRequiredAWS security token
X-Amz-Content-Sha256StringRequiredSHA256 hash of the content
X-Amz-DateStringRequiredDate and time the request is sent to the AWS service
AuthorizationStringRequiredAWS Signature Version 4 authorization header
- Credential: AWS access key ID and credential scope (required)
- SignedHeaders: list of signed headers (required)
- Signature: signature value (required)
Request Body​

This request does not contain a body.

Response Syntax​

If successful, the service returns an HTTP 200 response.

GetBucketAcl Response Syntax
<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​
ResponseTypeDescription
DisplayNameStringCloud account
IDStringUser ID
xsiString- CanonicalUser
- Group: only AllUsers is supported
PermissionString- FULL_CONTROL
- WRITE
- WRITE_ACP
- READ
- READ_ACP

PutBucketAcl​

Sets role-based permissions (ACL) for a bucket. ACL settings can be applied via either headers or the request body. If both headers and the body contain ACL settings, the settings in the body take precedence.

API call method​

MethodRequest URL
PUThttps://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/?acl
Path Parameters​
VariableDescription
Region_NameService region name (example: kr-central-2)
Bucket_NameTarget bucket name
Object_KeyTarget object key
Request Syntax​
Request Header​
KeyTypeRequiredDescription
Content-TypeStringRequiredMust be text/html
X-Amz-Security-TokenStringRequiredAWS security token
X-Amz-Content-Sha256StringRequiredSHA256 hash of the content
X-Amz-DateStringRequiredDate and time the request is sent to the AWS service
AuthorizationStringRequiredAWS Signature Version 4 authorization header
- Credential: AWS access key ID and credential scope (required)
- SignedHeaders: list of signed headers (required)
- Signature: signature value (required)
x-amz-aclStringOptionalCanned ACL to apply to the bucket
- private: does not allow public access. Grants only initial roles and storage.owner, revokes all other permissions
- public-read: grants storage.objectReader to all users
- public-read-write: grants storage.objectCreator to all users
- authenticated-read: grants storage.objectReader to all IAM users
Content-MD5StringRequiredBase64-encoded MD5 digest of the request body content
x-amz-grant-full-controlStringOptionalGrants the storage.admin role to a specified user (only a cloud account or AllUsers is supported)
- Cloud account: id={user ID}
- AllUsers: uri=http://acs.amazonaws.com/groups/global/AllUsers
x-amz-grant-readStringOptionalGrants the storage.objectReader role to a specified user (only a cloud account or AllUsers is supported)
- Cloud account: id={user ID}
- AllUsers: uri=http://acs.amazonaws.com/groups/global/AllUsers
x-amz-grant-read-acpStringOptionalGrants the storage.policyReader role to a specified user (only a cloud account or AllUsers is supported)
- Cloud account: id={user ID}
- AllUsers: uri=http://acs.amazonaws.com/groups/global/AllUsers
x-amz-grant-writeStringOptionalGrants the storage.objectCreator role to a specified user (only a cloud account or AllUsers is supported)
- Cloud account: id={user ID}
- AllUsers: uri=http://acs.amazonaws.com/groups/global/AllUsers
x-amz-grant-write-acpStringOptionalGrants the storage.policyWriter role to a specified user (only a cloud account or AllUsers is supported)
- Cloud account: id={user ID}
- AllUsers: uri=http://acs.amazonaws.com/groups/global/AllUsers
Request Body​
PutBucketAcl Request Syntax
<AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<AccessControlList>
<Grant>
<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser">
<ID>string</ID>
</Grantee>
<Permission>string</Permission>
</Grant>
</AccessControlList>
</AccessControlPolicy>

Request Elements​
RequestTypeRequiredDescription
IDStringOptionalUser ID
- Either ID or URI must be provided
URIStringOptionalGrants permission to the AllUsers group
- Either ID or URI must be provided
xsiStringRequired- CanonicalUser
- Group: only AllUsers is supported
PermissionStringOptional- FULL_CONTROL: grants storage.admin role
- WRITE: grants storage.objectCreator role
- WRITE-ACP: grants storage.policyWriter role
- READ: grants storage.objectReader role
- READ-ACP: grants storage.policyReader role
Response Syntax​
HTTP statusMessageDescription
200OKSuccess
401UnauthorizedPermission denied (invalid token)
403ForbiddenNo permission to modify
404Not foundBucket not found

GetBucketEncryption​

Retrieves the encryption configuration of the specified bucket.

API call method​

MethodRequest URL
GEThttps://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/?encryption
Path Parameters​
VariableDescription
Region_NameService region name (example: kr-central-2)
Bucket_NameTarget bucket name
Object_KeyTarget object key
Request Syntax​
Request Header​
KeyTypeRequiredDescription
Content-TypeStringRequiredMust be text/html
X-Amz-Security-TokenStringRequiredAWS security token
X-Amz-Content-Sha256StringRequiredSHA256 hash of the content
X-Amz-DateStringRequiredDate and time the request is sent to the AWS service
AuthorizationStringRequiredAWS Signature Version 4 authorization header
- Credential: AWS access key ID and credential scope (required)
- SignedHeaders: list of signed headers (required)
- Signature: signature value (required)
Request Body​

This request does not include a body.

Response Syntax​

If the request succeeds, the service returns an HTTP 200 response.

GetBucketEncryption Response Syntax
<?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​
ResponseTypeDescription
SSEAlgorithmStringAES256

PutBucketEncryption​

Sets server-side encryption for a bucket. Note: Encryption can only be enabled if the bucket is empty.

API call method​

MethodRequest URL
PUThttps://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/?encryption
Path Parameters​
VariableDescription
Region_NameService region name (example: kr-central-2)
Bucket_NameTarget bucket name
Object_KeyTarget object key
Request Syntax​
Request Header​
KeyTypeRequiredDescription
Content-MD5StringRequiredBase64-encoded MD5 digest of the request body for server-side encryption validation
Content-TypeStringRequiredMust be text/html
X-Amz-Security-TokenStringRequiredAWS security token
X-Amz-Content-Sha256StringRequiredSHA256 hash of the request body
X-Amz-DateStringRequiredDate and time the request was sent
AuthorizationStringRequiredAWS Signature Version 4 authorization header
- Credential: AWS access key ID and credential scope (required)
- SignedHeaders: list of signed headers (required)
- Signature: signature value (required)
Request Body​
Put bucket encryption request syntax
<ServerSideEncryptionConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Rule>
<ApplyServerSideEncryptionByDefault>
<SSEAlgorithm>String</SSEAlgorithm>
</ApplyServerSideEncryptionByDefault>
</Rule>
</ServerSideEncryptionConfiguration>
Request Elements​
RequestTypeRequiredDescription
SSEAlgorithmStringRequiredMust be AES256
Response Syntax​

If successful, the service returns an HTTP 200 response.

GetBucketLifecycle​

Retrieves the lifecycle configuration settings of a bucket.

API call method​

MethodRequest URL
GEThttps://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/?lifecycle
Path Parameters​
VariableDescription
Region_NameService region name (example: kr-central-2)
Bucket_NameTarget bucket name
Object_KeyTarget object key
Request Syntax​
Request Header​
KeyTypeRequiredDescription
Content-TypeStringRequiredtext/html
X-Amz-Security-TokenStringRequiredAWS security token
X-Amz-Content-Sha256StringRequiredSHA256 hash of the request body
X-Amz-DateStringRequiredDate and time of the request
AuthorizationStringRequiredAWS Signature Version 4 header
- Credential: AWS access key ID and scope
- SignedHeaders: list of signed headers
- Signature: signature value
Response Syntax​

If successful, the service returns an HTTP 200 response.

Get bucket lifecycle response syntax
<?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​
ResponseTypeDescription
StatusString- Enabled
- Disabled
DaysIntegerRetention period of the object
PrefixStringPrefix of the object name
KeyStringTag key
ValueStringTag value
IDStringName of the lifecycle policy

PutBucketLifecycle​

Sets lifecycle rules for the specified bucket.

API call method​

MethodRequest URL
PUThttps://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/?lifecycle
Request Syntax​
Request Header​
KeyTypeRequiredDescription
Content-MD5StringRequiredBase64-encoded MD5 digest of the request body
Content-TypeStringRequiredtext/html
X-Amz-Security-TokenStringRequiredAWS security token
X-Amz-Content-Sha256StringRequiredSHA256 hash of the request body
X-Amz-DateStringRequiredDate and time of the request
AuthorizationStringRequiredAWS Signature Version 4 header
- Credential: AWS access key ID and scope
- SignedHeaders: list of signed headers
- Signature: signature value
Request Body​
PutBucketLifecycle Request Syntax
  <?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​
RequestTypeRequiredDescription
StatusStringRequired- Enabled
- Disabled
DaysIntegerOptionalRetention period of the object
PrefixStringRequiredPrefix of the object name
KeyStringRequiredTag key
ValueStringRequiredTag value
IDStringOptionalName of the lifecycle policy
Response Syntax​

If the operation is successful, the service returns an HTTP 200 response.

DeleteBucketLifecycle​

Deletes all lifecycle settings configured on the specified bucket.

API call method​

MethodRequest URL
DELETEhttps://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/?lifecycle
Path Parameters​
VariableDescription
Region_NameService region name (example: kr-central-2)
Bucket_NameTarget bucket name
Object_KeyTarget object key
Request Syntax​
Request Header​
KeyTypeRequiredDescription
Content-TypeStringRequiredtext/html
X-Amz-Security-TokenStringRequiredAWS security token
X-Amz-Content-Sha256StringRequiredSHA256 hash of the request body
X-Amz-DateStringRequiredDate and time of the request
AuthorizationStringRequiredAWS Signature Version 4 header
- Credential: AWS access key ID and scope
- SignedHeaders: list of signed headers
- Signature: signature value
Request Body​

This request does not contain a body.

Response Syntax​

If the operation is successful, the service returns an HTTP 204 response.

GetBucketLocation​

Retrieves the region information of the specified bucket.

API call method​

MethodRequest URL
GEThttps://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/?location
Path Parameters​
VariableDescription
Region_NameService region name (example: kr-central-2)
Bucket_NameTarget bucket name
Object_KeyTarget object key
Request Syntax​
Request Header​
KeyTypeRequiredDescription
Content-TypeStringRequiredtext/html
X-Amz-Security-TokenStringRequiredAWS security token
X-Amz-Content-Sha256StringRequiredSHA256 hash of the request body
X-Amz-DateStringRequiredDate and time of the request
AuthorizationStringRequiredAWS Signature Version 4 header
- Credential: AWS access key ID and scope
- SignedHeaders: list of signed headers
- Signature: signature value
Request Body​

This request does not contain a body.

Response Syntax​

If the operation is successful, the service returns an HTTP 200 response.

  <?xml version="1.0" encoding="UTF-8"?>
<LocationConstraint xmlns="http://s3.amazonaws.com/doc/2006-03-01/">String</LocationConstraint>
Response Elements​
ResponseTypeDescription
RegionStringRegion information

Getobject​

Retrieves an object stored in the bucket.

API call method​

MethodRequest URL
GEThttps://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/{ObjectKey}
Path Parameters​
VariableDescription
Region_NameService region name (example: kr-central-2)
Bucket_NameTarget bucket name
Object_KeyTarget object key
Request Syntax​
Request Header​
KeyTypeRequiredDescription
Content-TypeStringRequiredtext/html
X-Amz-Security-TokenStringRequiredAWS security token
X-Amz-Content-Sha256StringRequiredSHA256 hash of the content
X-Amz-DateStringRequiredDate and time of the AWS request
AuthorizationStringRequiredAWS Signature Version 4 header
- Credential: AWS access key ID and scope
- SignedHeaders: list of signed headers
- Signature: signature value
Request Body​

This request does not contain a body.

Response Syntax​

If the operation is successful, the service returns an HTTP 200 response and retrieves the requested object.

Response Header​
ResponseTypeDescription
Content-LengthLongSize of the object in bytes
Content-TypeStringMedia type of the object
ETagStringEntity tag of the object

ListObjectsV2​

Retrieves the list of objects in a bucket.

API call method​

MethodRequest URL
GEThttps://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/?list-type=2
Path Parameters​
VariableDescription
Region_NameService region name (example: kr-central-2)
Bucket_NameTarget bucket name
Object_KeyTarget object key
Request Syntax​
Request Header​
KeyTypeRequiredDescription
Content-TypeStringRequiredtext/html
X-Amz-Security-TokenStringRequiredAWS security token
X-Amz-Content-Sha256StringRequiredSHA256 hash of the content
X-Amz-DateStringRequiredDate and time of the AWS request
AuthorizationStringRequiredAWS Signature Version 4 header
- Credential: AWS access key ID and scope
- SignedHeaders: list of signed headers
- Signature: signature value
Request Body​

This request does not contain a body.

Response Syntax​

If the operation is successful, the service returns an HTTP 200 response.

ListObjectsV2 Response Syntax
  <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​
ResponseTypeDescription
TenantStringProject ID
NameStringBucket name
PrefixStringObject key prefix
MaxKeysIntegerMaximum number of keys returned in the response
IsTruncatedBooleanfalse: all keys returned
true: more keys available
KeyStringObject key
LastModifiedTimestampObject creation time
ETagStringObject hash value
SizeLongObject size
StorageClassStringStorage class of the object
KeyCountIntegerNumber of keys returned in the response

HeadObject​

Retrieves metadata of an object.

API call method​

MethodRequest URL
HEADhttps://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/{ObjectKey}
Path Parameters​
VariableDescription
Region_NameService region name (example: kr-central-2)
Bucket_NameTarget bucket name
Object_KeyTarget object key
Request Syntax​
Request Header​
KeyTypeRequiredDescription
Content-TypeStringRequiredSet to text/html
X-Amz-Security-TokenStringRequiredAWS security token
X-Amz-Content-Sha256StringRequiredSHA256 hash of the content
X-Amz-DateStringRequiredDate and time the request is made
AuthorizationStringRequiredAWS signature version 4 header including credential, signed headers, and signature
Request Body​

This request does not contain a body.

Response Syntax​

If the operation is successful, the service returns an HTTP 200 response.

Response Header​
KeyDescription
DateTime the response was generated
Content-TypeType of the content in the body
Content-LengthSize of the object
ConnectionIndicates connection reuse
Accept-RangesAllows clients to request specific byte ranges
ETagIdentifier for detecting changes to the resource
Last-ModifiedLast modified date
X-Amz-ExpirationExpiration date set by lifecycle policy
X-Amz-Request-IdUnique request ID
X-Rgw-Object-TypeObject type handled by RGW: only normal is used
X-Content-Type-OptionsHeader to prevent MIME type sniffing
X-Frame-OptionsHeader to prevent select-jacking
X-XSS-ProtectionHeader indicating XSS protection behavior
Strict-Transport-SecurityHeader enforcing HTTPS communication

PutObject​

Uploads a single object to a bucket.

API call method​

MethodRequest URL
PUThttps://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/{ObjectKey}
Path Parameters​
VariableDescription
Region_NameService region name (example: kr-central-2)
Bucket_NameTarget bucket name
Object_KeyTarget object key
Request Syntax​
Request Header​
KeyTypeRequiredDescription
Content-TypeStringRequiredSet to text/html
X-Amz-Security-TokenStringRequiredAWS security token
X-Amz-Content-Sha256StringRequiredSHA256 hash of the content
X-Amz-DateStringRequiredDate and time the request is made
AuthorizationStringRequiredAWS signature version 4 header including credential, signed headers, and signature
X-Amz-TaggingStringOptionalObject tag value (e.g., Key1=Value1&Key2=Value2)
X-Amz-meta-keyStringOptionalMetadata value; replace key with the metadata key name and set the corresponding value
Request Body​

Binary data of the file to be uploaded.

Response Syntax​

If the operation is successful, the service returns an HTTP 200 response.

CopyObject​

Copies an object within a bucket.

API call method​

MethodRequest URL
PUThttps://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/{ObjectKey}
Path Parameters​
VariableDescription
Region_NameService region name (example: kr-central-2)
Bucket_NameTarget bucket name
Object_KeyTarget object key
Request Syntax​
Request Header​
KeyTypeRequiredDescription
Content-TypeStringRequiredtext/html
X-Amz-Security-TokenStringRequiredAWS security token
X-Amz-Content-Sha256StringRequiredSHA256 hash of the content
X-Amz-DateStringRequiredDate and time the request was made
AuthorizationStringRequiredAWS Signature Version 4 header
- Credential: AWS access key ID and scope
- SignedHeaders: list of signed headers
- Signature: calculated signature
x-amz-copy-sourceStringRequiredThe object key of the source object to be copied
Request Body​

This request does not contain a body.

Response Syntax​

If the operation is successful, the service returns an HTTP 200 response.

CopyObject Response Syntax
<CopyObjectResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<ETag>String</ETag>
<LastModified>Timestamp</LastModified>
</CopyObjectResult>
Response elements​
ResponseTypeDescription
ETagStringHash value of the object
LastModifiedTimestampObject creation timestamp

DeleteObject​

Deletes a single object.

API call method​

MethodRequest URL
DELETEhttps://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/{ObjectKey}
Path Parameters​
VariableDescription
Region_NameService region name (example: kr-central-2)
Bucket_NameTarget bucket name
Object_KeyTarget object key
Request Syntax​
Request Header​
KeyTypeRequiredDescription
Content-TypeStringRequiredtext/html
X-Amz-Security-TokenStringRequiredAWS security token
X-Amz-Content-Sha256StringRequiredSHA256 hash of the content
X-Amz-DateStringRequiredDate and time the request was made
AuthorizationStringRequiredAWS Signature Version 4 header
- Credential: AWS access key ID and scope
- SignedHeaders: list of signed headers
- Signature: calculated signature
Request Body​

This request does not contain a body.

Response Syntax​

If the operation is successful, the service returns an HTTP 204 response. HTTP/1.1 204

DeleteObjects​

Deletes multiple objects in bulk.

API call method​

MethodRequest URL
POSThttps://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/?delete
Path Parameters​
VariableDescription
Region_NameService region name (example: kr-central-2)
Bucket_NameTarget bucket name
Object_KeyTarget object key
Request Syntax​
Request Header​
KeyTypeRequiredDescription
Content-TypeStringRequiredtext/html
X-Amz-Security-TokenStringRequiredAWS security token
X-Amz-Content-Sha256StringRequiredSHA256 hash of the content
X-Amz-DateStringRequiredDate and time the request was made
AuthorizationStringRequiredAWS Signature Version 4 header
- Credential: AWS access key ID and scope
- SignedHeaders: list of signed headers
- Signature: calculated signature
Request Body​

Enter the keys of the objects to be deleted in the request body.

DeleteObjects Requst Syntax
  <Delete xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Object>
<Key>String</Key>
</Object>
<Object>
<Key>String</Key>
</Object>
</Delete>
Request Elements​
RequestTypeRequiredDescription
KeyStringRequiredObject key
Response Syntax​

If the operation is successful, the service returns an HTTP 200 response.

Delete multiple objects response syntax
  <DeleteResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Deleted>
<Key>String</Key>
</Deleted>
<Deleted>
<Key>String</Key>
</Deleted>
</DeleteResult>
Response Elements​
ResponseTypeRequiredDescription
KeyStringRequiredObject key

CreateMultipartUpload​

Initiates a multipart upload and returns an upload ID. The upload ID is used to associate all parts of the multipart upload.

API call method​

MethodRequest URL
POSThttps://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/{ObjectKey}/?uploads
Path Parameters​
VariableDescription
Region_NameService region name (example: kr-central-2)
Bucket_NameTarget bucket name
Object_KeyTarget object key
Request Syntax​
Request Header​
KeyTypeRequiredDescription
Content-TypeStringRequiredtext/html
X-Amz-Security-TokenStringRequiredAWS security token
X-Amz-Content-Sha256StringRequiredSHA256 hash of the content
X-Amz-DateStringRequiredDate and time of the AWS request
AuthorizationStringRequiredAWS Signature Version 4 header
- Credential: AWS access key ID and scope (required)
- SignedHeaders: list of signed header names (required)
- Signature: signature value (required)
Request Body​

This request does not contain a body.

Response Syntax​

If the operation is successful, the service returns an HTTP 200 response.

CreateMultipartUpload Response Syntax
  <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​
ResponseTypeDescription
TenantStringProject ID
BucketStringBucket name
KeyStringObject key to upload
UploadIdStringMultipart upload ID

Uploadpart​

Uploads a part of a multipart upload.

API call method​

MethodRequest URL
PUThttps://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/{ObjectKey}?partNumber={Number}&uploadId={UploadID}
Path Parameters​
VariableDescription
Region_NameService region name (example: kr-central-2)
Bucket_NameTarget bucket name
Object_KeyTarget object key
Request Syntax​
Request Header​
KeyTypeRequiredDescription
Content-TypeStringRequiredtext/html
X-Amz-Security-TokenStringRequiredAWS security token
X-Amz-Content-Sha256StringRequiredSHA256 hash of the content
X-Amz-DateStringRequiredDate and time of the AWS request
AuthorizationStringRequiredAWS Signature Version 4 header
- Credential: AWS access key ID and scope (required)
- SignedHeaders: list of signed header names (required)
- Signature: signature value (required)
Request Body​

This request does not contain a body.

Response Syntax​

If the operation is successful, the service returns an HTTP 200 response.

ListParts​

Retrieves the list of parts that have been uploaded for a specific multipart upload.

API call method​

MethodRequest URL
GEThttps://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/{ObjectKey}?uploadId={UploadID}
Path Parameters​
VariableDescription
Region_NameService region name (example: kr-central-2)
Bucket_NameTarget bucket name
Object_KeyTarget object key
Request Syntax​
Request Header​
KeyTypeRequiredDescription
Content-TypeStringRequiredtext/html
X-Amz-Security-TokenStringRequiredAWS security token
X-Amz-Content-Sha256StringRequiredSHA256 hash of the content
X-Amz-DateStringRequiredDate and time of the AWS request
AuthorizationStringRequiredAWS Signature Version 4 header
- Credential: AWS access key ID and scope (required)
- SignedHeaders: list of signed header names (required)
- Signature: signature value (required)
Request Body​

This request does not contain a body.

Response Syntax​

If the operation is successful, the service returns an HTTP 200 response.

ListParts Response Syntax
  <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​
ResponseTypeDescription
TenantStringProject ID
BucketStringBucket name
KeyStringObject key to upload
UploadIdStringMultipart upload ID
StorageClassStringStorage class
PartNumberMarkerStringStarting value for the listing; only parts with a higher part number are listed
NextPartNumberMarkerStringValue indicating the last part listed
MaxPartsStringMaximum number of parts allowed in the response
IsTruncatedStringIndicates whether the part list was truncated
IDStringProject ID
DisplayNameStringProject name
LastModifiedStringUpload timestamp of the part
PartNumberStringPart identifier number (positive integer between 1 and 10,000)
ETagStringEntity tag of the uploaded part
SizeStringSize of the uploaded part

ListMultipartUploads​

Lists ongoing multipart uploads in the bucket. An ongoing multipart upload starts with a CreateMultipartUpload request and remains active until it is either completed or aborted.

API call method​

MethodRequest URL
GEThttps://objectstorage.kr-central-2.kakaocloud.com/{Buckets}?uploads&max-uploads={number}
Path Parameters​
VariableDescription
Region_NameService region name (example: kr-central-2)
Bucket_NameTarget bucket name
Object_KeyTarget object key
Request Syntax​
Request Header​
KeyTypeRequiredDescription
Content-TypeStringRequiredtext/html
X-Amz-Security-TokenStringRequiredAWS security token
X-Amz-Content-Sha256StringRequiredSHA256 hash of the content
X-Amz-DateStringRequiredDate and time of the AWS request
AuthorizationStringRequiredAWS Signature Version 4 header
- Credential: AWS access key ID and scope (required)
- SignedHeaders: list of signed header names (required)
- Signature: signature value (required)
Request Body​

This request does not contain a body.

Response Syntax​

If the operation is successful, the service returns an HTTP 200 response.

ListMultipartUploads Response Syntax
  <?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​
ResponseTypeDescription
TenantStringProject ID
BucketStringBucket name
NextKeyMarkerStringValue to use for the key-marker parameter in the next request
NextUploadIdMarkerStringValue to use for the upload-id-marker parameter in the next request
MaxUploadsIntegerMaximum number of multipart uploads
IsTruncatedStringIndicates whether the list of parts was truncated
KeyStringObject key to be uploaded
UploadIdStringMultipart upload ID
IDStringProject ID
DisplayNameStringProject name
StorageClassStringStorage class
InitiatedTimestampMultipart upload initiation time

UploadPartCopy​

Uploads a part for a multipart upload by copying an object already stored in the bucket to the specified PartNumber.

API call method​

MethodRequest URL
PUThttps://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/{ObjectKey}?partNumber={number}&uploadId={UploadID}
Path Parameters​
VariableDescription
Region_NameService region name (example: kr-central-2)
Bucket_NameTarget bucket name
Object_KeyTarget object key
Request Syntax​
Request Header​
KeyTypeRequiredDescription
Content-TypeStringRequiredtext/html
X-Amz-Security-TokenStringRequiredAWS security token
X-Amz-Content-Sha256StringRequiredSHA256 hash of the content
X-Amz-DateStringRequiredDate and time of the AWS request
x-amz-copy-sourceStringRequiredObject key to copy as the part
AuthorizationStringRequiredAWS Signature Version 4 header
- Credential: AWS access key ID and scope (required)
- SignedHeaders: list of signed header names (required)
- Signature: signature value (required)
Request Body​

This request does not contain a body.

Response Syntax​

If the operation is successful, the service returns an HTTP 200 response.

UploadPartCopy Response Syntax
  <?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​
ResponseTypeDescription
LastModifiedTimestampObject upload timestamp
ETagStringObject hash value

CompleteMultipartUpload​

Once all parts have been uploaded via CreateMultipartUpload, the multipart upload can be completed using CompleteMultipartUpload. This operation assembles the previously uploaded parts into a single object.

API call method​

MethodRequest URL
POSThttps://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/{ObjectKey}?&uploadId={UploadID}
Path Parameters​
VariableDescription
Region_NameService region name (example: kr-central-2)
Bucket_NameTarget bucket name
Object_KeyTarget object key
Request Syntax​
Request Header​
KeyTypeRequiredDescription
Content-TypeStringRequiredtext/html
X-Amz-Security-TokenStringRequiredAWS security token
X-Amz-Content-Sha256StringRequiredSHA256 hash of the content
X-Amz-DateStringRequiredDate and time of the AWS request
AuthorizationStringRequiredAWS Signature Version 4 header
- Credential: AWS access key ID and scope (required)
- SignedHeaders: list of signed header names (required)
- Signature: signature value (required)
Request Body​
CompleteMultipartUpload Response Syntax
<CompleteMultipartUpload xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Part>
<ETag>String</ETag>
<PartNumber>Integer</PartNumber>
</Part>
...
</CompleteMultipartUpload>
Request Elements​
RequestTypeRequiredDescription
ETagStringOptionalObject hash value
PartNumberIntegerOptionalPart identifier (positive integer between 1 and 10,000)
Response Syntax​

If the operation is successful, the service returns an HTTP 200 response.

CompleteMultipartUpload Response Syntax
  <?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​
ResponseTypeDescription
LocationStringURI that identifies the newly created object
TenantStringProject ID
BucketStringBucket name
KeyStringObject key
ETagStringObject hash value

AbortMultipartUpload​

Aborts a multipart upload. Once aborted, additional parts cannot be uploaded using the same Upload ID.

API call method​

MethodRequest URL
DELETEhttps://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/{ObjectKey}?&uploadId={UploadID}
Path Parameters​
VariableDescription
Region_NameService region name (example: kr-central-2)
Bucket_NameTarget bucket name
Object_KeyTarget object key
Request Syntax​
Request Header​
KeyTypeRequiredDescription
Content-TypeStringRequiredtext/html
X-Amz-Security-TokenStringRequiredAWS security token
X-Amz-Content-Sha256StringRequiredSHA256 hash of the content
X-Amz-DateStringRequiredDate and time the request was made
AuthorizationStringRequiredAWS Signature Version 4 authorization header
- Credential: AWS access key ID and credential scope
- SignedHeaders: List of signed header names
- Signature: Signature value
Request Body​

This request does not include a body.

Response Syntax​

If the operation is successful, the service returns an HTTP 204 response.

GetObjectTagging​

Retrieves the tags associated with an object.

API call method​

MethodRequest URL
GEThttps://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/{BucketName}/{ObjectKey}?tagging
Path Parameters​
VariableDescription
Region_NameService region name (example: kr-central-2)
Bucket_NameTarget bucket name
Object_KeyTarget object key
Request Syntax​
Request Header​
KeyTypeRequiredDescription
Content-TypeStringRequiredtext/html
X-Amz-Security-TokenStringRequiredAWS security token
X-Amz-Content-Sha256StringRequiredSHA256 hash of the content
X-Amz-DateStringRequiredDate and time the request was made
AuthorizationStringRequiredAWS Signature Version 4 authorization header
- Credential: AWS access key ID and credential scope
- SignedHeaders: List of signed header names
- Signature: Signature value
Request Body​

This request does not include a body.

Response Syntax​

If the operation is successful, the service returns an HTTP 200 response.

GetObjectTagging Response Syntax
<?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​
ResponseTypeRequiredDescription
KeyStringRequiredObject tag key
ValueStringRequiredValue of the object tag key

PutObjectTagging​

Adds tags to an object. Existing tags will be overwritten.

API call method​

MethodRequest URL
PUThttps://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/{ObjectKey}?tagging
Path Parameters​
VariableDescription
Region_NameService region name (example: kr-central-2)
Bucket_NameTarget bucket name
Object_KeyTarget object key
Request Syntax​
Request Header​
KeyTypeRequiredDescription
Content-TypeStringRequiredtext/html
X-Amz-Security-TokenStringRequiredAWS security token
X-Amz-Content-Sha256StringRequiredSHA256 hash of the content
X-Amz-DateStringRequiredDate and time the request was made
AuthorizationStringRequiredAWS Signature Version 4 authorization header
- Credential: AWS access key ID and credential scope
- SignedHeaders: List of signed header names
- Signature: Signature value
Request Body​
PutObjectTagging Response Syntax
<Tagging xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<TagSet>
<Tag>
<Key>String</Key>
<Value>String</Value>
</Tag>
</TagSet>
</Tagging>
Request Elements​
RequestTypeRequiredDescription
KeyStringRequiredObject tag key
ValueStringRequiredValue of the object tag key
Response Syntax​

If successful, the service returns an HTTP 200 response.

DeleteObjectTagging​

Deletes the tags of an object.

API call method​

MethodRequest URL
DELETEhttps://objectstorage.kr-central-2.kakaocloud.com/{BucketName}/{ObjectKey}?tagging
Path Parameters​
VariableDescription
Region_NameService region name (example: kr-central-2)
Bucket_NameTarget bucket name
Object_KeyTarget object key
Request Syntax​
Request Header​
KeyTypeRequiredDescription
Content-TypeStringRequiredtext/html
X-Amz-Security-TokenStringRequiredAWS security token
X-Amz-Content-Sha256StringRequiredSHA256 hash of the content
X-Amz-DateStringRequiredDate and time the AWS service request was sent
AuthorizationStringRequiredAWS Signature Version 4 authorization header
- Credential: AWS access key ID and credential scope (required)
- SignedHeaders: List of signed header names (required)
- Signature: Signature value (required)
Request Body​

This request does not contain a body.

Response Syntax​

If successful, the service returns an HTTP 200 response.

GetBucketCors​

Retrieves the Cross-Origin Resource Sharing (CORS) configuration set on a bucket.

API call method​

MethodRequest URL
GEThttps://objectstorage.{Region_Name}.kakaocloud.com/{Bucket_Name}/?cors
Path Parameters​
VariableDescription
Region_NameService region name (example: kr-central-2)
Bucket_NameTarget bucket name
Request Syntax​
GetBucketCors Response Syntax
curl --request GET --location 'https://objectstorage.{Region_Name}.kakaocloud.com/{Bucket_Name}/?cors' \
--header 'X-Amz-Content-Sha256: {content_sha256}' \
--header 'X-Amz-Date: {amz_date}' \
--header 'Authorization: {authorization_header}'
Request Header​
KeyTypeRequiredDescription
X-Amz-Content-Sha256StringRequiredSHA256 hash of the content
X-Amz-DateStringRequiredDate and time the AWS service request was sent
AuthorizationStringRequiredAWS Signature Version 4 header signed in the request
- Credential: AWS access key ID and credential scope (required)
- SignedHeaders: List of signed header names (required)
- Signature: Signature value (required)
Request Body​

This request does not include a body.

Response Syntax​

If the operation is successful, the service returns an HTTP 200 response.

GetBucketCors Response Syntax
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>http://example.com</AllowedOrigin>
<AllowedOrigin>http://example.com:8080</AllowedOrigin>
<AllowedOrigin>https://example.com</AllowedOrigin>
<AllowedOrigin>http://*.example.com</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedHeader>x-auth-token</AllowedHeader>
<ExposeHeader>Access-Control-Allow-Origin</ExposeHeader>
</CORSRule>
</CORSConfiguration>
Response Elements​
ResponseTypeDescription
CORSRuleStringCORS policy. One or more CORSRule entries can exist, up to 10.
AllowedOriginStringDomain that can send CORS requests to the bucket, up to 200 characters.
AllowedMethodStringHTTP methods to allow: GET, PUT, POST, DELETE, HEAD, *. Configure 1 to 5 methods in uppercase.
AllowedHeaderStringRequest headers that clients can use for preflight requests, such as Content-Type, Authorization, or *. Configure 0 to 10 headers, up to 200 characters each.
ExposeHeaderStringHeaders exposed to clients in server responses, such as ETag, Authorization, and X-Custom-Header. Configure 0 to 10 headers, up to 200 characters each.
MaxAgeSecondsIntegerTime in seconds that a browser caches the preflight request result. Range: 0 to 86400 seconds.

PutBucketCors​

Adds or modifies the Cross-Origin Resource Sharing (CORS) configuration for a bucket.

API call method​

MethodRequest URL
PUThttps://objectstorage.{Region_Name}.kakaocloud.com/{Bucket_Name}/?cors
Path Parameters​
VariableDescription
Region_NameService region name (example: kr-central-2)
Bucket_NameTarget bucket name
Request Syntax​
PutBucketCors Response Syntax
curl --request PUT --location 'https://objectstorage.{Region_Name}.kakaocloud.com/{Bucket_Name}/?cors' \
--header 'X-Amz-Content-Sha256: {content_sha256}' \
--header 'X-Amz-Date: {amz_date}' \
--header 'Authorization: {authorization_header}' \
--header 'Content-Type: application/xml' \
--data-raw '<CORSConfiguration>
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>'
Request Header​
KeyTypeRequiredDescription
X-Amz-Content-Sha256StringRequiredSHA256 hash of the content
X-Amz-DateStringRequiredDate and time the AWS service request was sent
AuthorizationStringRequiredAWS Signature Version 4 header signed in the request
- Credential: AWS access key ID and credential scope (required)
- SignedHeaders: List of signed header names (required)
- Signature: Signature value (required)
Request Body​
PutBucketCors Response Syntax
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>http://example.com</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
<ExposeHeader>ETag</ExposeHeader>
<MaxAgeSeconds>3000</MaxAgeSeconds>
</CORSRule>
</CORSConfiguration>
Request Elements​
ResponseTypeRequiredDescription
CORSRuleStringRequiredCORS policy. One or more CORSRule entries can exist, up to 10.
AllowedOriginStringRequiredDomain that can send CORS requests to the bucket, up to 200 characters.
AllowedMethodStringRequiredHTTP methods to allow: GET, PUT, POST, DELETE, HEAD, *. Configure 1 to 5 methods in uppercase.
AllowedHeaderStringOptionalRequest headers that clients can use for preflight requests, such as Content-Type, Authorization, or *. Configure 0 to 10 headers, up to 200 characters each.
ExposeHeaderStringOptionalHeaders exposed to clients in server responses, such as ETag, Authorization, and X-Custom-Header. Configure 0 to 10 headers, up to 200 characters each.
MaxAgeSecondsIntegerOptionalTime in seconds that a browser caches the preflight request result. Range: 0 to 86400 seconds.
Response Syntax​

If the operation is successful, the service returns an HTTP 200 response.

DELETEBucketCors​

Deletes the Cross-Origin Resource Sharing (CORS) configuration from a bucket.

API call method​

MethodRequest URL
DELETEhttps://objectstorage.{Region_Name}.kakaocloud.com/{Bucket_Name}/?cors
Path Parameters​
VariableDescription
Region_NameService region name (example: kr-central-2)
Bucket_NameTarget bucket name
Request Syntax​
PutBucketCors Response Syntax
curl --request DELETE --location 'https://objectstorage.{Region_Name}.kakaocloud.com/{Bucket_Name}/?cors' \
--header 'X-Amz-Content-Sha256: {content_sha256}' \
--header 'X-Amz-Date: {amz_date}' \
--header 'Authorization: {authorization_header}'
Request Header​
KeyTypeRequiredDescription
X-Amz-Content-Sha256StringRequiredSHA256 hash of the content
X-Amz-DateStringRequiredDate and time the AWS service request was sent
AuthorizationStringRequiredAWS Signature Version 4 header signed in the request
- Credential: AWS access key ID and credential scope (required)
- SignedHeaders: List of signed header names (required)
- Signature: Signature value (required)
Response Syntax​

If the operation is successful, the service returns an HTTP 204 response.

CORS Preflight​

  1. Browsers can use CORS Preflight to receive CORS configuration information.
    No separate token is required when calling CORS Preflight from a browser.
    The preflight request must be called with the project ID before the bucket name in the request URL, in the {project_id}:{Bucket_Name} format.

API call method​

MethodRequest URL
OPTIONShttps://objectstorage.{Region_Name}.kakaocloud.com/{Project-Id}:{Bucket_Name}/?cors
Path Parameters​
VariableDescription
Region_NameService region name (example: kr-central-2)
Project-IdProject ID
Bucket_NameTarget bucket name
Request Syntax​
CORS Preflight Response Syntax
curl --request OPTIONS --location 'https://objectstorage.{Region_Name}.kakaocloud.com/{Bucket_Name}/{Object_Key}' \
--header 'Origin: {request_origin_url}' \
--header 'Access-Control-Request-Method: {method_to_use}' \
--header 'Access-Control-Request-Headers: {headers_to_use}' \
--verbose
Request Header​
KeyTypeRequiredDescription
OriginStringRequiredServer location including protocol, host, and port. Example: http://example.com
Access-Control-Request-HeadersListOptionalList of headers, such as X-Auth-Token and Content-Type
Access-Control-Request-MethodListOptionalList of methods, such as HEAD, GET, PUT, POST, and DELETE
Request Body​

This request does not include a body.

Response Header​
ResponseTypeDescription
Access-Control-Allow-CredentialsBooleanOption that allows cookies to be shared between different domains.
- true: Allowed
- false: Not allowed
Access-Control-Allow-HeadersListRequest headers allowed in the request
Access-Control-Allow-MethodsListAllowed HTTP methods: HEAD, GET, PUT, POST, DELETE
Access-Control-Allow-OriginStringOrigin allowed for CORS requests. Example: http://example.com or wildcard *
Access-Control-Max-AgeIntegerTime that a browser can cache the preflight request result
Response Syntax​

For Preflight, success or failure is not determined by the response status code.
If a CORSRule exists, response header values are returned. If not, no meaningful header values are returned.

Common status codes​

HTTP StatusMessageDescription
200OKSuccess
204No ContentSuccess
400BadRequestRequest information error
401UnauthorizedAuthentication failed
403ForbiddenNo permission
404Not FoundRequested resource not found