--- title: "PutObjectRetention" slug: "ncloudstorage-putobjectretention" updated: 2026-09-17T09:17:01Z published: 2026-09-17T09:17:01Z canonical: "api.ncloud-docs.com/ncloudstorage-putobjectretention" --- > ## Documentation Index > Fetch the complete documentation index at: https://api.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # PutObjectRetention Classic/VPC 환경에서 이용 가능합니다. Ncloud Storage 객체에 보존(Retention) 설정을 적용합니다. 보존이 설정된 객체는 지정한 만료일까지 삭제·변경할 수 없습니다. ## 요청 요청 형식을 설명합니다. 요청 형식은 다음과 같습니다. | 메서드 | URI | | --- | --- | | PUT | /{Key} | ### 요청 헤더 요청 헤더에 대한 설명은 다음과 같습니다. 참고 Ncloud Storage API에서 공통으로 사용하는 헤더에 대한 정보는 [Ncloud Storage 요청 헤더](/docs/storage-ncloudstorage#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94)를 참조해 주십시오. | 필드 | 필수 여부 | 설명 | | --- | --- | --- | | `Content-MD5` | Conditional | 요청 바디의 Base64 인코딩된 128비트 MD5 해시값 - 요청 바디 무결성 검증에 사용 - `x-amz-checksum-*`를 입력하지 않은 경우, 필수 입력 | | `x-amz-checksum-*` | Conditional | 체크섬 해시 값 - 키의 `*`에 사용한 알고리즘 입력 - 지원 알고리즘: `crc32` \| `crc32c` \| `sha1` \| `sha256` \| `crc64nvme` - `Content-MD5`를 입력하지 않은 경우, 필수 입력 | | `x-amz-bypass-governance-retention` | Optional | GOVERNANCE 모드 보존 우회 여부 - `true` 지정 시 기존 GOVERNANCE 보존을 완화·제거 - 별도 우회 권한 필요 | ### 요청 경로 파라미터 요청 경로 파라미터에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `Key` | String | Required | 객체 이름 | ### 요청 쿼리 파라미터 요청 쿼리 파라미터에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `versionId` | String | Optional | 보존을 설정할 객체의 버전 ID - 미 입력 시 최신 버전에 설정 | ### 요청 바디 요청 바디에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `Retention` | Object | Required | 보존 설정 | | `Retention.Mode` | String | Optional | 보존 모드 - `GOVERNANCE` \| `COMPLIANCE` - `GOVERNANCE`: 특별 권한으로 우회 가능 - `COMPLIANCE`: 누구도 우회 불가 - `RetainUntilDate`와 함께 지정 | | `Retention.RetainUntilDate` | String | Optional | 보존 만료일 - ISO 8601 형식 - 현재보다 미래 시점이어야 함 - `Mode`와 함께 지정 | 참고 `Mode`와 `RetainUntilDate`를 모두 생략하면 객체의 보존 설정이 해제됩니다. ### 요청 예시 요청 예시는 다음과 같습니다. ``` PUT /object.csv?retention HTTP/1.1 Host: {Bucket}.kr.ncloudstorage.com Content-MD5: {MD5 해시값} GOVERNANCE 2025-12-31T00:00:00.000Z ``` ## 응답 응답 형식을 설명합니다. ### 응답 헤더 Ncloud Storage API에서 공통으로 사용하는 헤더에 대한 정보는 [Ncloud Storage 응답 헤더](/docs/storage-ncloudstorage#%EC%9D%91%EB%8B%B5%ED%97%A4%EB%8D%94)를 참조해 주십시오. ### 응답 상태 코드 응답 상태 코드에 대한 설명은 다음과 같습니다. 참고 Ncloud Storage API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 [Ncloud Storage 응답 상태 코드](/docs/storage-ncloudstorage#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C)를 참조해 주십시오. | 에러 코드 | HTTP 상태 코드 | 설명 | | --- | --- | --- | | `InvalidRequest` | 400 | 버킷에 Object Lock 설정이 없음 | | `InvalidArgument` | 400 | 보존 만료일(`RetainUntilDate`)이 미래 시점이 아님 | | `MalformedXML` | 400 | 요청 바디 XML이 스키마에 맞지 않음 - `Mode`가 `GOVERNANCE`/`COMPLIANCE`가 아님 - `Mode`와 `RetainUntilDate` 중 하나만 지정 | | `AccessDenied` | 403 | 기존 보존 설정을 우회 권한 없이 완화·제거함 | | `NoSuchKey` | 404 | 지정한 객체가 존재하지 않음 | | `NoSuchVersion` | 404 | 지정한 버전이 존재하지 않음 | | `MethodNotAllowed` | 405 | 삭제 마커에 보존을 설정함 | ### 응답 예시 응답 예시는 다음과 같습니다. ``` HTTP/1.1 200 OK ```