컨테이너 정책을 사용하면 컨테이너 설정을 JSON 형식의 정책 문서로 통합하여 관리할 수 있습니다.
정책 문서는 다음과 같이 기능별 최상위 키로 구성되며, 각 최상위 키 하위에 세부 설정을 정의합니다.
{
"lifecycle": {
...
},
"lock": {
...
},
"ip_acl": {
...
}
}
[참고] 2026년 5월 기준 수명 주기 설정만 지원하며, 향후 더 많은 기능으로 확대 적용될 예정입니다.
컨테이너에 설정된 정책 문서를 조회합니다.
GET /v1/{Account}/{Container}?policy
X-Auth-Token: {token-id}
| 이름 | 종류 | 형식 | 필수 | 설명 |
|---|---|---|---|---|
| X-Auth-Token | Header | String | O | 토큰 ID |
| Account | URL | String | O | 스토리지 계정 |
| Container | URL | String | O | 컨테이너 이름 |
| policy | Query | - | O | 정책 조회를 위한 쿼리 파라미터 (값 없이 사용) |
성공 시 HTTP 상태 코드 200과 함께 JSON 형식의 정책 문서를 반환합니다. 설정된 정책이 없으면 빈 JSON 오브젝트를 반환합니다.
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"lifecycle": {
"default_rule" : {
"action": {
"type": "transfer",
"destination": "destination-con"
},
"days": 1
},
"rules": [
{
"name": "rule1",
"condition": {
"prefix": "temp/"
},
"days": 2,
"action": {
"type": "delete"
}
}
]
}
}
요청 본문에 JSON 정책 문서를 포함해 컨테이너 정책을 설정합니다.
정책은 요청에 포함된 최상위 키(예: lifecycle) 단위로 덮어쓰며, 포함되지 않은 키의 설정은 유지됩니다.
POST /v1/{Account}/{Container}
X-Auth-Token: {token-id}
Content-Type: application/json
| 이름 | 종류 | 형식 | 필수 | 설명 |
|---|---|---|---|---|
| X-Auth-Token | Header | String | O | 토큰 ID |
| Content-Type | Header | String | O | application/json |
| Account | URL | String | O | 스토리지 계정 |
| Container | URL | String | O | 컨테이너 이름 |
| - | Body | JSON | O | 설정할 정책 문서 |
성공 시 HTTP 상태 코드 204를 반환합니다. 응답 본문은 없습니다.
[참고] 같은 요청에서 헤더와 정책 문서를 함께 사용하면 정책 문서가 우선 적용됩니다.
컨테이너 정책 문서의 lifecycle 키를 사용해 수명 주기 규칙을 설정합니다.
수명 주기에는 두 가지 종류의 규칙이 있습니다.
| 규칙 종류 | 이름 | 설명 |
|---|---|---|
default_rule |
기본 규칙 | 모든 조건 규칙에 부합하지 않는 오브젝트에 적용되는 규칙입니다. |
rules |
조건 규칙 | 설정한 조건에 부합하는 오브젝트에 적용되는 규칙입니다. 기본 규칙보다 우선 적용됩니다. |
수명 주기 정책 문서의 구조는 다음과 같습니다.
{
"lifecycle": {
"default_rule": {
"days": integer,
"action": {
"type": "transfer" | "delete",
"destination": string
}
},
"rules": [
{
"name": string,
"condition": {
"prefix": string
},
"days": integer,
"action": {
"type": "transfer" | "delete",
"destination": string
}
}
]
}
}
| 필드 | 형식 | 필수 | 설명 | 비고 |
|---|---|---|---|---|
default_rule |
Object | - | 기본 규칙 | 생략하거나 빈 오브젝트({})로 설정하면 기본 규칙이 해제됩니다. |
default_rule.days |
Integer | O | 오브젝트 수명 주기 | 일 단위, 최대 36,500일 |
default_rule.action.type |
Enum | O | 만료 동작 유형 | "transfer" (이동) 또는 "delete" (삭제) |
default_rule.action.destination |
String | - | 만료 시 오브젝트를 이동할 대상 컨테이너 이름 | type이 "transfer"일 때 필수 |
rules |
Array | - | 조건 규칙 목록 | 생략하거나 빈 배열([])로 설정하면 조건 규칙이 모두 삭제됩니다. |
rules[*].name |
String | O | 규칙 이름 | 컨테이너 내에서 중복될 수 없습니다. |
rules[*].condition.prefix |
String | O | 오브젝트 이름의 접두사 조건 | 빈 문자열은 허용하지 않습니다. |
rules[*].days |
Integer | O | 오브젝트 수명 주기 | 일 단위, 최대 36,500일 |
rules[*].action.type |
Enum | O | 만료 동작 유형 | "transfer" (이동) 또는 "delete" (삭제) |
rules[*].action.destination |
String | - | 만료 시 오브젝트를 이동할 대상 컨테이너 이름 | type이 "transfer"일 때 필수 |
오브젝트 하나에는 단 하나의 수명 주기 규칙만 적용됩니다. 규칙은 아래 우선순위에 따라 적용됩니다.
| 우선순위 | 규칙 | 설명 |
|---|---|---|
| 1 | 조건 규칙 (rules) |
조건 규칙의 순서대로 확인하여 처음으로 부합하는 규칙을 적용합니다. |
| 2 | 기본 규칙 (default_rule) |
부합하는 조건 규칙이 없으면 기본 규칙을 적용합니다. |
| 3 | 삭제 | 오브젝트 만료 시 적용할 수 있는 규칙이 없으면 삭제됩니다. |
수명 주기는 오브젝트 업로드 시점에 컨테이너의 정책을 조회하여 적용합니다.
days) 값을 기반으로 오브젝트 만료 일시를 설정합니다.만료 동작은 오브젝트 만료 시점에 컨테이너의 정책을 조회하여 적용합니다.
action)에 따라 이동(transfer) 또는 삭제(delete)를 수행합니다.아래와 같은 수명 주기 규칙이 설정되어 있다고 가정합니다.
{
"lifecycle": {
"default_rule": {
"days": 10,
"action": { "type": "delete" }
},
"rules": [
{
"name": "rule1",
"condition": { "prefix": "logs/" },
"days": 5,
"action": { "type": "transfer", "destination": "archive-container" }
}
]
}
}
image/test.jpg 업로드logs/ 접두사 조건에 부합하지 않으므로 기본 규칙 적용rule1의 조건 변경"condition": { "prefix": "image/" }로 변경image/test.jpg 수명 주기 만료rule1의 image/ 접두사 조건에 부합archive-container로 이동