객체 버전 관리 및 동시 실행 제어

개요

버전 관리가 사용 설정된 버킷에는 이전 버전의 객체가 유지되므로 실수로 삭제한 데이터를 삭제 취소하거나 이전 버전의 데이터를 검색할 수 있습니다. 관련 명령어 플래그를 설정하거나 명령어에 특정 세대 번호를 포함하여 달리 수행해야 한다고 표시하지 않는 한 기존 객체는 gsutil 명령어에 의해 무시됩니다. 예를 들어 *** 같은 와일드 카드는 자체적으로 기존 객체 버전에 대해 작동하지 않습니다.

Cloud Storage에 대한 쓰기는 항상 새 버전을 생성하므로 gsutil cp를 사용할 때는 버전별 URL을 대상으로 지정할 수 없습니다. 버전별 URL을 gsutil cp의 대상으로 지정하면 오류가 발생합니다. copy 명령어에서 기존 객체를 소스로 지정하면 항상 새 객체 버전이 생성되고 원본은 그대로 유지됩니다(명령어를 사용하여 서비스 중인 버전을 복원하는 경우에도). gsutil mv 명령어를 사용하면 동시에 객체 버전을 복원하고 소스로 사용된 기존 복사본을 삭제할 수 있습니다.

언제든지 버킷의 버전 관리를 설정하거나 해제할 수 있습니다. 버전 관리를 중지하면 기존 객체 버전이 그대로 유지되고 새 버전이 업로드될 때마다 버킷에서 객체의 기존 서비스 중인 버전이 삭제됩니다.

버킷에 버전 관리를 사용 설정했는지 여부와 관계없이 각 객체에는 다음과 같은 양의 정수 필드 두 개가 연결됩니다.

  • generation - 새 객체가 이름이 같은 기존 객체를 대체할 때 업데이트됩니다. 연속 버전의 세대 번호가 증가한다는 보장은 없으며 각 새 버전에 고유한 세대 번호가 있습니다.
  • metageneration - 메타데이터 생성을 식별합니다. 1부터 시작하며 지정된 콘텐츠 생성의 메타데이터(예: ACL 또는 Content-Type)가 업데이트될 때마다 업데이트됩니다. 생성 번호가 변경되면 재설정됩니다.

버전이 지정된 데이터로 작업할 때는 이들 두 정수 중 generation만 사용됩니다. generation 및 metageneration 모두 동시 실행 제어와 함께 사용할 수 있습니다.

버전 관리 및 동시 실행에 대해 자세히 알아보려면 다음 문서를 참조하세요.