이 페이지에서는 개별 객체에 적용하는 메타데이터 플래그인 객체 보존 조치에 대해 설명합니다. 객체에 보존 조치가 적용되면 객체를 삭제하거나 대체할 수 없습니다. 하지만 객체의 메타데이터를 수정할 수 있습니다.
보존 조치 유형
Cloud Storage는 다음과 같은 유형의 보존 조치를 제공합니다.
이벤트 기반 보존 조치
임시 보존 조치
객체에는 1가지 또는 2가지 보존 조치 유형이 적용되거나 아예 적용되지 않을 수 있습니다.
객체에 보관 구성이 없고 보관 정책이 없는 버킷에 저장된 경우 두 보존 조치 유형 모두 동일하게 작동합니다.
다음 표에서는 객체에 보관 구성이 있거나 보관 정책이 있는 버킷에 저장된 경우 각 보존 조치 유형의 작동 방식을 설명합니다.
객체에 이벤트 기반 보존 조치가 적용됨
객체에 임시 보존 조치가 적용됨
객체에 보관 구성이 있음
해당 사항 없음: 객체에는 이벤트 기반 보존 조치와 보관 구성이 동시에 적용될 수 없습니다.
임시 보존 조치를 해제해도 객체의 보관 기한에는 영향을 미치지 않음
객체가 보관 정책이 있는 버킷에 저장됨
이벤트 기반 보존 조치를 해제하면 보관 기간에 따라 버킷에 있는 객체의 시간을 다시 설정합니다.
임시 보존 조치를 해제해도 보관 기간에 따라 버킷에 있는 객체의 시간에 영향을 주지 않습니다.
이벤트 기반 보존 조치 예
보관 정책이 1년의 보관 기간을 설정하는 버킷에 객체 A와 객체 B라는 2개의 객체가 있다고 가정해 보겠습니다. 객체를 버킷에 추가할 때 객체 A에는 이벤트 기반 보존 조치를 적용하고 객체 B에는 임시 보존 조치를 적용했습니다. 이후 1년이 지났으며 일반적으로는 이 시점에 객체를 삭제할 수 있지만 두 개체에 모두 보존 조치가 적용되어 있으므로 둘 다 삭제할 수 없습니다.
이 시점에서 두 객체 모두에서 보존 조치를 해제합니다. 이벤트 기반 보존 조치를 사용한 객체 A의 경우 보관 기간을 위해 버킷의 시간이 다시 시작됩니다. 즉, 객체를 1년 더 버킷에 보관해야 삭제하거나 대체할 수 있습니다. 임시 보존 조치를 사용한 객체 B는 즉시 삭제되거나 대체될 수 있습니다. 객체가 보관 기간을 채우면 임시 보존 조치가 적용되지 않기 때문입니다.
이 동작을 통해 이벤트 기반 보존 조치를 보관 정책과 함께 사용하여 일부 이벤트 발생에 따라 보관을 제어할 수 있습니다(예: 대출 상환 후 특정 기간 동안 대출 문서 보존). 임시 보존 조치는 규정 준수 또는 법적 목적으로 사용할 수 있습니다(예: 법적 조사를 위해 거래 문서 보존).
기본 이벤트 기반 보존 조치 속성
개별 객체에 보존 조치를 적용하는 것 외에도 버킷에 기본 이벤트 기반 속성을 사용 설정할 수도 있습니다. 이 작업을 수행하면 이후에 버킷에 추가되는 각 새 객체에 이벤트 기반 보존 조치가 자동으로 적용됩니다.
이 동작은 특정 이벤트가 발생한 후 일정 기간 동안 객체가 버킷에 유지되도록 하려는 경우에 유용합니다. 예를 들어 대출을 상환한 후에 특정 기간 동안 유지해야 하는 대출 정보를 저장하기 위한 버킷이 있다고 가정합니다. 버킷에 적절한 보관 정책과 기본 이벤트 기반 보존 조치 속성을 사용 설정하면 버킷에 대출 문서를 업로드할 때 이벤트 기반 보존 조치가 적용됩니다.
대출을 상환하면 보존 조치가 해제되고 보관 정책에 설정된 보관 기간을 채울 때까지 대출 정보가 계속 저장되고 변경할 수 없게 됩니다.
제한사항
기존 보관 구성이 있는 객체에 이벤트 기반 보존 조치를 적용하려고 하면 시도가 실패합니다.
동시에 객체에 이벤트 기반 보존 조치를 적용하고 객체에 대한 보관 구성을 설정하는 요청도 마찬가지로 실패합니다.
XML API로 객체 보존 조치를 관리할 수 없으며, XML API를 사용하여 객체 메타데이터를 검색할 때는 객체의 보존 상태가 포함되지 않습니다.
그러나 객체에 보존 조치가 있는 경우 객체를 삭제하거나 XML API로 대체하려고 하면 계속 실패합니다.
XML API 멀티파트 업로드의 경우 업로드 및 업로드 부분을 시작할 수 있지만, 보존 조치가 있는 객체를 덮어쓰면 업로드 완료 요청이 실패합니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-09-05(UTC)"],[],[],null,["# Object holds\n\n[Usage](/storage/docs/holding-objects)\n\nThis page discusses object holds, which are metadata flags that you\n[place on individual objects](/storage/docs/holding-objects#set-object-hold). While an object has a hold placed on it,\nthe object cannot be deleted or replaced. You can, however,\n[edit the metadata](/storage/docs/metadata#editable) of the object.\n\nTypes of holds\n--------------\n\nCloud Storage offers the following types of holds:\n\n- **Event-based** holds\n- **Temporary** holds\n\nAn object can have one type of hold, both types, or neither hold placed on it.\nWhen an object does not have a [retention configuration](/storage/docs/object-lock) and is stored in a\nbucket without a [retention policy](/storage/docs/bucket-lock#overview), both hold types behave exactly the same.\nThe following table describes how each hold type behaves if an object has a\nretention configuration or is stored in a bucket with a retention policy:\n\n#### Event-based hold example\n\nSay you have two objects - Object A and Object B - in a bucket whose retention\npolicy sets a 1-year retention period. When you added the objects to the bucket,\nyou placed an event-based hold on Object A and a temporary hold on Object B. A\nyear passes, and while you'd normally be able to delete them at this point,\nbecause both objects still have a hold on them, you can't delete either of them.\n\nAt this point, you release the hold from both objects. For Object A, which was\nusing an event-based hold, its time in the bucket restarts for the purposes of\nthe retention period. This means it must stay in the bucket for another year\nbefore it can be deleted or replaced. Object B, which was using a temporary\nhold, can immediately be deleted or replaced, because the temporary hold has no\neffect on when the object fulfilled its retention time.\n\nThis behavior lets you use event-based holds in conjunction with\n[retention policies](/storage/docs/bucket-lock#overview) to control retention based on the occurrence of some\nevent, such as holding loan documents for a certain period after the loan was\npaid. Temporary holds can be used for regulatory or legal purposes, such\nas holding trading documents for legal investigation.\n\nThe default event-based hold property\n-------------------------------------\n\nIn addition to placing holds on individual objects, you can\n[enable the default event-based property](/storage/docs/holding-objects#set-default-hold) on your bucket. When you do this,\neach new object that subsequently gets added to the bucket automatically has an\nevent-based hold placed on it.\n\nThis behavior is useful when you want an object to persist in your bucket for\na certain length of time after a certain event occurs. For example,\nyour bucket may be meant to store loans that you must retain for a certain\nnumber of years once they've been paid off. With a suitable retention policy\nand the default event-based hold property enabled for your bucket, when you\nupload a loan document to your bucket, it gets an event-based hold placed on it.\nWhen the loan is paid off, you can release the hold, at which point the\nretention policy ensures the loan remains stored and unchangeable until it\nfulfills the retention period set in your retention policy.\n\nRestrictions\n------------\n\n- Requests that attempt to place an event-based hold on an object that has an\n existing [retention configuration](/storage/docs/object-lock) fail.\n\n - Requests that would simultaneously place an event-based hold on an object and set a retention configuration for the object similarly fail.\n- Object holds cannot be managed with the [XML API](/storage/docs/xml-api/overview), and the hold status of\n an object is not included when using the XML API to\n [retrieve object metadata](/storage/docs/viewing-editing-metadata#view).\n\n - However, attempting to delete or replace an object with the XML API still\n fails if the object has a hold on it.\n\n - For [XML API multipart uploads](/storage/docs/multipart-uploads), you can initiate an upload and upload\n parts, but the request to complete the upload fails if it would overwrite\n an object that has a hold on it.\n\n- Object holds are not supported for buckets that use hierarchical namespace.\n\nWhat's next\n-----------\n\n- Learn how to [enable event-based holds by default](/storage/docs/holding-objects#set-default-hold) and how to [set individual object holds](/storage/docs/holding-objects#use-object-holds).\n- Learn about [retention policies](/storage/docs/bucket-lock#overview), which protect data from deletion for a specified period of time.\n- Learn about [lifecycle configurations](/storage/docs/lifecycle) for your bucket, which can automatically delete objects after you remove their holds."]]