이 페이지는 객체 버전 관리의 설정 방법을 설명하고 객체 버전 관리의 사용 예시를 제공합니다.
객체 버전 관리 설정
객체 버전 관리 사용 설정
버킷에서 객체 버전 관리 사용을 설정하려면 다음을 따르세요.
Console
객체 버전 관리는 Google Cloud Console을 사용하여 제어할 수 없습니다. 대신 gsutil 또는 클라이언트 라이브러리를 사용하세요.
gsutil
gsutil versioning set on
명령어를 사용합니다.
gsutil versioning set on gs://BUCKET_NAME
여기서 BUCKET_NAME
은 관련 버킷의 이름입니다. 예를 들면 my-bucket
입니다.
코드 샘플
C++
자세한 내용은 Cloud Storage C++ API 참조 문서를 확인하세요.
Go
자세한 내용은 Cloud Storage Go API 참조 문서를 확인하세요.
자바
자세한 내용은 Cloud Storage 자바 API 참조 문서를 확인하세요.
Node.js
자세한 내용은 Cloud Storage Node.js API 참조 문서를 확인하세요.
Python
자세한 내용은 Cloud Storage Python API 참조 문서를 확인하세요.
Ruby
자세한 내용은 Cloud Storage Ruby API 참조 문서를 확인하세요.
REST API
JSON API
- OAuth 2.0 Playground에서 승인 액세스 토큰을 가져옵니다. 자체 OAuth 사용자 인증 정보를 사용하도록 플레이그라운드를 구성합니다.
다음 정보를 포함하는
.json
파일을 만듭니다.{ "versioning": { "enabled": true } }
cURL
을 사용하여PATCH
버킷 요청으로 JSON API를 호출합니다.curl -X PATCH --data-binary @JSON_FILE_NAME.json \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=versioning"
각 항목의 의미는 다음과 같습니다.
JSON_FILE_NAME
은 2단계에서 만든 파일입니다.OAUTH2_TOKEN
은 1단계에서 생성한 액세스 토큰입니다.BUCKET_NAME
은 관련 버킷의 이름입니다. 예를 들면my-bucket
입니다.
XML API
- OAuth 2.0 Playground에서 승인 액세스 토큰을 가져옵니다. OAuth 사용자 인증 정보를 사용하도록 Playground를 구성합니다.
다음 정보를 포함하는
.xml
파일을 만듭니다.<VersioningConfiguration> <Status>Enabled</Status> </VersioningConfiguration>
cURL
을 사용하여PUT
버킷 요청 및versioning
쿼리 문자열 매개변수로 XML API를 호출합니다.curl -X PUT --data-binary @XML_FILE_NAME.xml \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME?versioning"
각 항목의 의미는 다음과 같습니다.
XML_FILE_NAME
은 2단계에서 만든 파일입니다.OAUTH2_TOKEN
은 1단계에서 생성한 액세스 토큰입니다.BUCKET_NAME
은 관련 버킷의 이름입니다. 예를 들면my-bucket
입니다.
객체 버전 관리가 사용 설정되면 실시간 객체 버전이 대체되거나 삭제될 때마다 해당 버전은 이전 버전이 됩니다.
객체 버전 관리 중지
버킷에서 객체 버전 관리를 중지하려면 다음을 따르세요.
Console
객체 버전 관리는 Google Cloud Console을 사용하여 제어할 수 없습니다. 대신 gsutil 또는 클라이언트 라이브러리를 사용하세요.
gsutil
gsutil versioning set off
명령어를 사용합니다.
gsutil versioning set off gs://BUCKET_NAME
여기서 BUCKET_NAME
은 관련 버킷의 이름입니다. 예를 들면 my-bucket
입니다.
코드 샘플
C++
자세한 내용은 Cloud Storage C++ API 참조 문서를 확인하세요.
Go
자세한 내용은 Cloud Storage Go API 참조 문서를 확인하세요.
자바
자세한 내용은 Cloud Storage 자바 API 참조 문서를 확인하세요.
Node.js
자세한 내용은 Cloud Storage Node.js API 참조 문서를 확인하세요.
Python
자세한 내용은 Cloud Storage Python API 참조 문서를 확인하세요.
Ruby
자세한 내용은 Cloud Storage Ruby API 참조 문서를 확인하세요.
REST API
JSON API
- OAuth 2.0 Playground에서 승인 액세스 토큰을 가져옵니다. 자체 OAuth 사용자 인증 정보를 사용하도록 플레이그라운드를 구성합니다.
다음 정보를 포함하는
.json
파일을 만듭니다.{ "versioning": { "enabled": false } }
cURL
을 사용하여PATCH
버킷 요청으로 JSON API를 호출합니다.curl -X PATCH --data-binary @JSON_FILE_NAME.json \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=versioning"
각 항목의 의미는 다음과 같습니다.
JSON_FILE_NAME
은 2단계에서 만든 파일입니다.OAUTH2_TOKEN
은 1단계에서 생성한 액세스 토큰입니다.BUCKET_NAME
은 관련 버킷의 이름입니다. 예를 들면my-bucket
입니다.
XML API
- OAuth 2.0 Playground에서 승인 액세스 토큰을 가져옵니다. OAuth 사용자 인증 정보를 사용하도록 Playground를 구성합니다.
다음 정보를 포함하는
.xml
파일을 만듭니다.<VersioningConfiguration> <Status>Suspended</Status> </VersioningConfiguration>
cURL
을 사용하여PUT
버킷 요청 및versioning
쿼리 문자열 매개변수로 XML API를 호출합니다.curl -X PUT --data-binary @XML_FILE_NAME.xml \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME?versioning"
각 항목의 의미는 다음과 같습니다.
XML_FILE_NAME
은 2단계에서 만든 파일입니다.OAUTH2_TOKEN
은 1단계에서 생성한 액세스 토큰입니다.BUCKET_NAME
은 관련 버킷의 이름입니다. 예를 들면my-bucket
입니다.
객체 버전 관리 사용 설정 여부 확인
버킷에서 객체 버전 관리 사용이 설정되었는지 여부를 확인하려면 다음을 따르세요.
Console
객체 버전 관리는 Google Cloud Console을 사용하여 확인할 수 없습니다. 대신 gsutil 또는 클라이언트 라이브러리를 사용하세요.
gsutil
gsutil versioning get
명령어를 사용합니다.
gsutil versioning get gs://BUCKET_NAME
여기서 BUCKET_NAME
은 관련 버킷의 이름입니다. 예를 들면 my-bucket
입니다.
객체 버전 관리가 사용 설정되어 있으면 다음과 같은 응답이 표시됩니다.
gs://my-bucket: Enabled
REST API
JSON API
- OAuth 2.0 Playground에서 승인 액세스 토큰을 가져옵니다. 자체 OAuth 사용자 인증 정보를 사용하도록 플레이그라운드를 구성합니다.
cURL
을 사용하여GET
버킷 요청으로 JSON API를 호출합니다.curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=versioning"
각 항목의 의미는 다음과 같습니다.
OAUTH2_TOKEN
은 1단계에서 생성한 액세스 토큰입니다.BUCKET_NAME
은 관련 버킷의 이름입니다. 예를 들면my-bucket
입니다.
XML API
- OAuth 2.0 Playground에서 승인 액세스 토큰을 가져옵니다. 자체 OAuth 사용자 인증 정보를 사용하도록 플레이그라운드를 구성합니다.
cURL
을 사용하여GET
버킷 요청 및versioning
쿼리 문자열 매개변수로 XML API를 호출합니다.curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME?versioning"
각 항목의 의미는 다음과 같습니다.
OAUTH2_TOKEN
은 1단계에서 생성한 액세스 토큰입니다.BUCKET_NAME
은 관련 버킷의 이름입니다. 예를 들면my-bucket
입니다.
버전 관리된 객체 작업
다음 섹션은 버전 관리된 객체로 작업하는 방법을 보여줍니다. 객체 버전 관리로 작업하는 자세한 예시는 객체 버전 관리 예시를 참조하세요.
이전 객체 버전 나열
객체의 서비스 중인 버전 및 이전 버전을 모두 나열하고 해당 generation
번호를 보려면 다음 안내를 따르세요.
Console
객체 버전은 Google Cloud Console을 사용하여 관리할 수 없습니다. 대신 gsutil 또는 클라이언트 라이브러리를 사용하세요.
gsutil
gsutil ls -a
명령어를 사용합니다.
gsutil ls -a gs://BUCKET_NAME
여기서 BUCKET_NAME
은 관련 버킷의 이름입니다. 예를 들면 my-bucket
입니다.
응답은 다음 예시와 같습니다.
gs://BUCKET_NAME/OBJECT_NAME1#GENERATION_NUMBER1 gs://BUCKET_NAME/OBJECT_NAME2#GENERATION_NUMBER2 gs://BUCKET_NAME/OBJECT_NAME3#GENERATION_NUMBER3 ...
코드 샘플
C++
자세한 내용은 Cloud Storage C++ API 참조 문서를 확인하세요.
Go
자세한 내용은 Cloud Storage Go API 참조 문서를 확인하세요.
자바
자세한 내용은 Cloud Storage 자바 API 참조 문서를 확인하세요.
Node.js
자세한 내용은 Cloud Storage Node.js API 참조 문서를 확인하세요.
Python
자세한 내용은 Cloud Storage Python API 참조 문서를 확인하세요.
Ruby
자세한 내용은 Cloud Storage Ruby API 참조 문서를 확인하세요.
REST API
JSON API
- OAuth 2.0 Playground에서 승인 액세스 토큰을 가져옵니다. 자체 OAuth 사용자 인증 정보를 사용하도록 플레이그라운드를 구성합니다.
cURL
을 사용하여LIST
객체 요청으로 JSON API를 호출합니다.curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o?versions=true"
각 항목의 의미는 다음과 같습니다.
OAUTH2_TOKEN
은 1단계에서 생성한 액세스 토큰입니다.BUCKET_NAME
은 관련 버킷의 이름입니다. 예를 들면my-bucket
입니다.
객체의 이전 버전에는 timeDeleted
속성이 있습니다.
XML API
- OAuth 2.0 Playground에서 승인 액세스 토큰을 가져옵니다. 자체 OAuth 사용자 인증 정보를 사용하도록 플레이그라운드를 구성합니다.
cURL
을 사용하여GET
버킷 요청 및versions
쿼리 문자열 매개변수로 XML API를 호출합니다.curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME?versions"
각 항목의 의미는 다음과 같습니다.
OAUTH2_TOKEN
은 1단계에서 생성한 액세스 토큰입니다.BUCKET_NAME
은 관련 버킷의 이름입니다. 예를 들면my-bucket
입니다.
versions
쿼리 매개변수를 사용할 경우와 사용하지 않을 경우의 GET
요청 결과에는 몇 가지 차이점이 있습니다.
구체적으로, 요청에 versions
쿼리 매개변수를 포함하면 Cloud Storage가 다음 정보를 반환합니다.
- 각 객체에 대한 정보를 포함한
Version
요소 - 객체가 이전 버전이 된(삭제되거나 대체된) 시점을 포함한
DeletedTime
요소 - 특정 객체가 최신 버전인지 여부를 나타내는 IsLatest 요소
- 객체 목록이 부분 목록인 경우(버킷 한 개에 다수의 객체 버전이 있는 경우에 발생)
NextGenerationMarker
요소가 반환됩니다. 이 요소 값을 이후 요청의generationmarker
쿼리 매개변수에서 사용하여 마지막 지점에서 다시 시작할 수 있습니다.generationmarker
쿼리 매개변수는marker
쿼리 매개변수를 사용하여 버전 관리되지 않은 버킷의 목록 페이지를 매기는 것과 같은 방식으로 사용됩니다.
이전 객체 버전 액세스
객체 다운로드, 메타데이터 보기 또는 메타데이터 업데이트와 같은 작업을 수행할 때 객체의 이전 버전을 사용하려면 다음 안내를 따르세요.
Console
객체 버전은 Google Cloud Console을 사용하여 관리할 수 없습니다. 대신 gsutil 또는 클라이언트 라이브러리를 사용하세요.
gsutil
다음과 같이 객체 이름에 이전 버전의
generation
번호를 추가합니다.OBJECT_NAME#GENERATION_NUMBER
각 항목의 의미는 다음과 같습니다.
OBJECT_NAME
은 이전 버전의 이름입니다. 예를 들면pets/dog.png
입니다.GENERATION_NUMBER
는 이전 버전의 세대 번호입니다. 예를 들면1560468815691234
입니다.
1단계의 문자열을 사용하여 객체의 서비스 중인 버전에서 평소에 하는 것과 동일하게 진행합니다.
REST API
JSON API
다음과 같이 이전 버전의
generation
번호를 객체의 URI에 추가합니다.https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?generation=GENERATION_NUMBER
각 항목의 의미는 다음과 같습니다.
BUCKET_NAME
은 이전 버전이 포함된 버킷의 이름입니다. 예를 들면my-bucket
입니다.OBJECT_NAME
은 이전 버전의 이름입니다. 예를 들면pets/dog.png
입니다.GENERATION_NUMBER
는 이전 버전의 세대 번호입니다. 예를 들면1560468815691234
입니다.
1단계의 URI를 사용하여 객체의 서비스 중인 버전에서 평소에 하는 것과 동일하게 진행합니다.
XML API
다음과 같이 이전 버전의
generation
번호를 객체의 URI에 추가합니다.https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME?generation=GENERATION_NUMBER
각 항목의 의미는 다음과 같습니다.
BUCKET_NAME
은 이전 버전이 포함된 버킷의 이름입니다. 예를 들면my-bucket
입니다.OBJECT_NAME
은 이전 버전의 이름입니다. 예를 들면pets/dog.png
입니다.GENERATION_NUMBER
는 이전 버전의 세대 번호입니다. 예를 들면1560468815691234
입니다.
1단계의 URI를 사용하여 객체의 서비스 중인 버전에서 평소에 하는 것과 동일하게 진행합니다.
이전 객체 버전 복사
객체의 이전 버전을 복사하려면 다음 단계를 따르세요.
Console
객체 버전은 Google Cloud Console을 사용하여 관리할 수 없습니다. 대신 gsutil 또는 클라이언트 라이브러리를 사용하세요.
gsutil
gsutil cp
명령어를 사용합니다.
gsutil cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME#GENERATION_NUMBER gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME
각 항목의 의미는 다음과 같습니다.
SOURCE_BUCKET_NAME
은 복사할 이전 버전이 포함된 버킷의 이름입니다. 예를 들면my-bucket
입니다.SOURCE_OBJECT_NAME
은 복사할 이전 버전의 이름입니다. 예를 들면pets/dog.png
입니다.GENERATION_NUMBER
는 복사할 이전 버전의 세대 번호입니다. 예를 들면1560468815691234
입니다.DESTINATION_BUCKET_NAME
은 이전 버전을 복사할 버킷의 이름입니다. 예를 들면my-bucket
입니다.DESTINATION_OBJECT_NAME
은 이전 버전 사본의 이름입니다. 예를 들면pets/shiba.png
입니다.
성공하면 응답은 다음 예시와 같습니다.
Operation completed over 1 objects/58.8 KiB.
코드 샘플
C++
자세한 내용은 Cloud Storage C++ API 참조 문서를 확인하세요.
Go
자세한 내용은 Cloud Storage Go API 참조 문서를 확인하세요.
자바
자세한 내용은 Cloud Storage 자바 API 참조 문서를 확인하세요.
Node.js
자세한 내용은 Cloud Storage Node.js API 참조 문서를 확인하세요.
Python
자세한 내용은 Cloud Storage Python API 참조 문서를 확인하세요.
Ruby
자세한 내용은 Cloud Storage Ruby API 참조 문서를 확인하세요.
REST API
JSON API
- OAuth 2.0 Playground에서 승인 액세스 토큰을 가져옵니다. 자체 OAuth 사용자 인증 정보를 사용하도록 플레이그라운드를 구성합니다.
cURL
을 사용하여POST
객체 요청으로 JSON API를 호출합니다.curl -X POST \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Length: 0" \ "https://storage.googleapis.com/upload/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/rewriteTo/b/DESTINATION_BUCKET_NAME/o/NAME_OF_COPY?sourceGeneration=GENERATION_NUMBER"
각 항목의 의미는 다음과 같습니다.
OAUTH2_TOKEN
은 1단계에서 생성한 액세스 토큰입니다.SOURCE_BUCKET_NAME
은 복사할 이전 버전이 포함된 버킷의 이름입니다. 예를 들면my-bucket
입니다.SOURCE_OBJECT_NAME
은 복사할 이전 버전의 이름입니다. 예를 들면pets/dog.png
입니다.DESTINATION_BUCKET_NAME
은 이전 버전을 복사할 버킷의 이름입니다. 예를 들면my-bucket
입니다.NAME OF COPY
은 이전 버전 사본의 이름입니다. 예를 들면pets/shiba.png
입니다.GENERATION_NUMBER
는 복사할 이전 버전의 세대 번호입니다. 예를 들면1560468815691234
입니다.
XML API
- OAuth 2.0 Playground에서 승인 액세스 토큰을 가져옵니다. 자체 OAuth 사용자 인증 정보를 사용하도록 플레이그라운드를 구성합니다.
cURL
을 사용하여PUT
객체 요청으로 XML API를 호출합니다.curl -X PUT \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "x-goog-copy-source: SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME" \ -H "x-goog-copy-source-generation:GENERATION_NUMBER" \ "https://storage.googleapis.com/DESTINATION_BUCKET_NAME/NAME_OF_COPY"
각 항목의 의미는 다음과 같습니다.
OAUTH2_TOKEN
은 1단계에서 생성한 액세스 토큰입니다.SOURCE_BUCKET_NAME
은 복사할 이전 버전이 포함된 버킷의 이름입니다. 예를 들면my-bucket
입니다.SOURCE_OBJECT_NAME
은 복사할 이전 버전의 이름입니다. 예를 들면pets/dog.png
입니다.GENERATION_NUMBER
는 복사할 이전 버전의 세대 번호입니다. 예를 들면1560468815691234
입니다.DESTINATION_BUCKET_NAME
은 이전 버전을 복사할 버킷의 이름입니다. 예를 들면my-bucket
입니다.NAME OF COPY
은 이전 버전 사본의 이름입니다. 예를 들면pets/shiba.png
입니다.
이전 객체 버전 삭제
객체의 이전 버전을 삭제하려면 다음 단계를 따르세요.
Console
객체 버전은 Google Cloud Console을 사용하여 관리할 수 없습니다. 대신 gsutil 또는 클라이언트 라이브러리를 사용하세요.
gsutil
gsutil rm
명령어를 사용합니다.
gsutil rm gs://BUCKET_NAME/OBJECT_NAME#GENERATION_NUMBER
각 항목의 의미는 다음과 같습니다.
BUCKET_NAME
은 삭제할 이전 버전이 포함된 버킷의 이름입니다. 예를 들면my-bucket
입니다.OBJECT_NAME
은 삭제할 이전 버전의 이름입니다. 예를 들면pets/dog.png
입니다.GENERATION_NUMBER
는 삭제할 이전 버전의 세대 번호입니다. 예를 들면1560468815691234
입니다.
성공하면 응답은 다음 예시와 같습니다.
Operation completed over 1 objects.
코드 샘플
C++
자세한 내용은 Cloud Storage C++ API 참조 문서를 확인하세요.
Go
자세한 내용은 Cloud Storage Go API 참조 문서를 확인하세요.
자바
자세한 내용은 Cloud Storage 자바 API 참조 문서를 확인하세요.
Node.js
자세한 내용은 Cloud Storage Node.js API 참조 문서를 확인하세요.
Python
자세한 내용은 Cloud Storage Python API 참조 문서를 확인하세요.
Ruby
자세한 내용은 Cloud Storage Ruby API 참조 문서를 확인하세요.
REST API
JSON API
- OAuth 2.0 Playground에서 승인 액세스 토큰을 가져옵니다. 자체 OAuth 사용자 인증 정보를 사용하도록 플레이그라운드를 구성합니다.
cURL
을 사용하여DELETE
객체 요청으로 JSON API를 호출합니다.curl -X DELETE \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?generation=GENERATION_NUMBER"
각 항목의 의미는 다음과 같습니다.
OAUTH2_TOKEN
은 1단계에서 생성한 액세스 토큰입니다.BUCKET_NAME
은 삭제할 이전 버전이 포함된 버킷의 이름입니다. 예를 들면my-bucket
입니다.OBJECT_NAME
은 삭제할 이전 버전의 이름입니다. 예를 들면pets/dog.png
입니다.GENERATION_NUMBER
는 삭제할 이전 버전의 세대 번호입니다. 예를 들면1560468815691234
입니다.
XML API
- OAuth 2.0 Playground에서 승인 액세스 토큰을 가져옵니다. 자체 OAuth 사용자 인증 정보를 사용하도록 플레이그라운드를 구성합니다.
cURL
을 사용하여DELETE
객체 요청으로 XML API를 호출합니다.curl -X DELETE \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME?generation=GENERATION_NUMBER"
각 항목의 의미는 다음과 같습니다.
OAUTH2_TOKEN
은 1단계에서 생성한 액세스 토큰입니다.BUCKET_NAME
은 삭제할 이전 버전이 포함된 버킷의 이름입니다. 예를 들면my-bucket
입니다.OBJECT_NAME
은 삭제할 이전 버전의 이름입니다. 예를 들면pets/dog.png
입니다.GENERATION_NUMBER
는 삭제할 이전 버전의 세대 번호입니다. 예를 들면1560468815691234
입니다.
다음 단계
- 객체 버전 관리 자세히 알아보기
- 객체 수명 주기 관리를 사용하여 객체 버전을 자동으로 관리하는 방법 알아보기