객체 버전 관리 사용

이 페이지는 객체 버전 관리의 설정 방법을 설명하고 객체 버전 관리의 사용 예를 제공합니다. 이 기능에 대한 설명은 객체 버전 관리를 참조하세요.

객체 버전 관리 설정

다음 섹션에서는 gsutil 도구, JSON API, XML API를 사용하여 객체 버전 관리를 사용 설정 및 중지하는 방법을 설명합니다. 현재 Google Cloud Platform Console로는 객체 버전 관리를 제어할 수 없습니다.

객체 버전 관리 사용 설정

버킷에서 객체 버전 관리 사용을 설정하려면 다음을 수행합니다.

gsutil

gsutil versioning set on 명령어를 사용합니다. 여기서 [VALUES_IN_BRACKETS]를 적절한 값으로 바꿉니다.

gsutil versioning set on gs://[BUCKET_NAME]

REST API

JSON API

  1. OAuth 2.0 Playground에서 승인 액세스 토큰을 가져옵니다. Playground에서 OAuth 사용자 인증 정보를 사용하도록 구성합니다.
  2. 다음 정보를 포함하는 .json 파일을 만듭니다.
  3. {
      "versioning": {
        "enabled": true
      }
    }
  4. cURL을 사용하여 PATCH Bucket 요청으로 JSON API를 호출합니다. 여기서 [VALUES_IN_BRACKETS]를 적절한 값으로 바꿉니다.
    curl -X PATCH --data-binary @[JSON_FILE_NAME].json \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        -H "Content-Type: application/json" \
        "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]?fields=versioning"

XML API

  1. OAuth 2.0 Playground에서 승인 액세스 토큰을 가져옵니다. Playground에서 OAuth 사용자 인증 정보를 사용하도록 구성합니다.
  2. 다음 정보를 포함하는 .xml 파일을 만듭니다. 여기서 [VALUES_IN_BRACKETS]를 적절한 값으로 바꿉니다.
    <VersioningConfiguration>
      <Status>Enabled</Status>
    </VersioningConfiguration>
  3. cURL을 사용하여 PUT Bucket 요청과 versioning 쿼리 문자열 매개변수로 XML API를 호출합니다. 여기서 [VALUES_IN_BRACKETS]를 적절한 값으로 바꿉니다.
    curl -X PUT --data-binary @[XML_FILE_NAME].xml \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[BUCKET_NAME]?versioning"

객체 버전 관리가 사용 설정되어 있으면 객체의 서비스 중인 버전을 덮어쓰거나 삭제할 때마다 Cloud Storage가 보관처리된 버전의 객체를 만듭니다.

객체 버전 관리 중지

버킷에서 객체 버전 관리를 중지하려면 다음을 따르세요.

gsutil

gsutil versioning set off 명령어를 사용합니다. 여기서 [VALUES_IN_BRACKETS]를 적절한 값으로 바꿉니다.

gsutil versioning set off gs://[BUCKET_NAME]

REST API

JSON API

  1. OAuth 2.0 Playground에서 승인 액세스 토큰을 가져옵니다. Playground에서 OAuth 사용자 인증 정보를 사용하도록 구성합니다.
  2. 다음 정보를 포함하는 .json 파일을 만듭니다.
  3. {
      "versioning": {
        "enabled": false
      }
    }
  4. cURL을 사용하여 PATCH Bucket 요청으로 JSON API를 호출합니다. 여기서 [VALUES_IN_BRACKETS]를 적절한 값으로 바꿉니다.
    curl -X PATCH --data-binary @[JSON_FILE_NAME].json \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        -H "Content-Type: application/json" \
        "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]?fields=versioning"

XML API

  1. OAuth 2.0 Playground에서 승인 액세스 토큰을 가져옵니다. Playground에서 OAuth 사용자 인증 정보를 사용하도록 구성합니다.
  2. 다음 정보를 포함하는 .xml 파일을 만듭니다. 여기서 [VALUES_IN_BRACKETS]를 적절한 값으로 바꿉니다.
    <VersioningConfiguration>
      <Status>Suspended</Status>
    </VersioningConfiguration>
  3. cURL을 사용하여 PUT Bucket 요청과 versioning 쿼리 문자열 매개변수로 XML API를 호출합니다. 여기서 [VALUES_IN_BRACKETS]를 적절한 값으로 바꿉니다.
    curl -X PUT --data-binary @[XML_FILE_NAME].xml \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[BUCKET_NAME]?versioning"

객체 버전 관리 사용 설정 여부 확인

버킷에서 객체 버전 관리 사용이 설정되었는지 여부를 확인하려면 다음을 따르세요.

gsutil

gsutil versioning get 명령어를 사용합니다. 여기서 [VALUES_IN_BRACKETS]를 적절한 값으로 바꿉니다.

gsutil versioning get gs://[BUCKET_NAME]

객체 버전 관리가 사용 설정되어 있으면 다음과 같은 응답이 표시됩니다.

gs://[BUCKET_NAME]: Enabled

REST API

JSON API

  1. OAuth 2.0 Playground에서 승인 액세스 토큰을 가져옵니다. OAuth 사용자 인증 정보를 사용할 수 있도록 플레이그라운드를 구성합니다.
  2. cURL을 사용하여 GET Bucket 요청으로 JSON API를 호출합니다. 여기서 [VALUES_IN_BRACKETS]를 적절한 값으로 바꿉니다.
    curl -X GET -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]?fields=versioning"

XML API

  1. OAuth 2.0 Playground에서 승인 액세스 토큰을 가져옵니다. OAuth 사용자 인증 정보를 사용할 수 있도록 플레이그라운드를 구성합니다.
  2. cURL을 사용하여 GET Bucket 요청과 versioning 쿼리 문자열 매개변수로 XML API를 호출합니다. 여기서 [VALUES_IN_BRACKETS]를 적절한 값으로 바꿉니다.
    curl -X GET \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[BUCKET_NAME]?versioning"

버전 관리된 객체 작업

다음 섹션은 버전 관리된 객체로 작업하는 방법을 보여줍니다. 객체 버전 관리로 작업하는 자세한 예는 객체 버전 관리 예제를 참조하세요.

보관처리된 객체 버전 나열

객체의 실시간 및 보관처리 버전을 모두 나열하고 해당 generation 번호를 보려면 다음을 따르세요.

gsutil

gsutil ls -a 명령어를 사용합니다. 여기서 [VALUES_IN_BRACKETS]를 적절한 값으로 바꿉니다.

gsutil ls -a gs://[BUCKET_NAME]

다음 예와 같은 응답이 표시됩니다.

gs://[BUCKET_NAME]/[OBJECT_NAME1]#[GENERATION_NUMBER1]
gs://[BUCKET_NAME]/[OBJECT_NAME1]#[GENERATION_NUMBER2]
gs://[BUCKET_NAME]/[OBJECT_NAME1]#[GENERATION_NUMBER3]
...

REST API

JSON API

  1. OAuth 2.0 Playground에서 승인 액세스 토큰을 가져옵니다. OAuth 사용자 인증 정보를 사용할 수 있도록 플레이그라운드를 구성합니다.
  2. cURL을 사용하여 LIST Object 요청으로 JSON API를 호출합니다. 여기서 [VALUES_IN_BRACKETS]를 적절한 값으로 바꿉니다.
    curl -X GET -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/o?versions=true"

객체의 보관처리 버전은 `timeDeleted` 속성을 갖습니다.

XML API

  1. OAuth 2.0 Playground에서 승인 액세스 토큰을 가져옵니다. OAuth 사용자 인증 정보를 사용할 수 있도록 플레이그라운드를 구성합니다.
  2. cURL을 사용하여 GET Bucket 요청과 versions 쿼리 문자열 매개변수로 XML API를 호출합니다. 여기서 [VALUES_IN_BRACKETS]를 적절한 값으로 바꿉니다.
    curl -X GET -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[BUCKET_NAME]?versions"

versions 쿼리 매개변수를 사용할 경우와 사용하지 않을 경우의 GET 요청 결과에는 몇 가지 차이점이 있습니다. 구체적으로, 요청에 versions 쿼리 매개변수를 포함하면 Cloud Storage가 다음 정보를 반환합니다.

  • 각 객체에 대한 정보를 포함한 Version 요소
  • 객체가 보관처리(삭제 또는 덮어쓰기)된 시간을 포함한 DeletedTime 요소
  • 특정 객체가 최신 버전인지 여부를 나타내는 IsLatest 요소
  • 객체 목록이 부분 목록인 경우(버킷 한 개에 다수의 객체 버전이 있는 경우에 발생), NextGenerationMarker 요소가 반환됩니다. 이 요소 값을 이후 요청의 generationmarker 쿼리 매개변수에서 사용하여 마지막 지점에서 다시 시작할 수 있습니다. generationmarker 쿼리 매개변수는 marker 쿼리 매개변수를 사용하여 버전 관리되지 않은 버킷의 목록 페이지를 매기는 것과 같은 방식으로 사용됩니다.

보관처리된 객체 버전에 액세스

객체의 보관처리된 버전에 액세스하려면 다음을 따르세요.

gsutil

  1. 보관처리된 객체의 generation 번호를 객체 이름에 추가합니다. 아래에서 [VALUES_IN_BRACKETS]는 적절한 값으로 바꿉니다.

    [OBJECT_NAME]#[GENERATION_NUMBER]
  2. 1단계의 문자열을 사용하여 실시간 객체에서의 방식과 동일하게 진행합니다.

REST API

JSON API

  1. [VALUES_IN_BRACKETS]를 적절한 값으로 교체하여 보관처리된 객체의 generation 번호를 객체의 URI에 추가합니다.
    https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/o/[OBJECT_NAME]?generation=[GENERATION_NUMBER]
  2. 1단계의 URI를 사용하여 실시간 객체에서의 방식과 동일하게 진행합니다.

XML API

  1. [VALUES_IN_BRACKETS]를 적절한 값으로 교체하여 보관처리된 객체의 generation 번호를 객체의 URI에 추가합니다.
    https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]?generation=[GENERATION_NUMBER]
  2. 1단계의 URI를 사용하여 실시간 객체에서의 방식과 동일하게 진행합니다.

보관처리된 객체 버전 복사

객체의 보관처리된 버전을 복사하려면 다음을 따르세요.

gsutil

gsutil cp 명령어를 사용합니다. 여기서 [VALUES_IN_BRACKETS]를 적절한 값으로 바꿉니다.

gsutil cp gs://[SOURCE_BUCKET_NAME]/[SOURCE_OBJECT_NAME]#[GENERATION_NUMBER] gs://[DESTINATION_BUCKET_NAME]/[DESTINATION_OBJECT_NAME]

성공하면 다음 예와 같은 응답이 표시됩니다.

Operation completed over 1 objects/58.8 KiB.

REST API

JSON API

  1. OAuth 2.0 Playground에서 승인 액세스 토큰을 가져옵니다. OAuth 사용자 인증 정보를 사용할 수 있도록 플레이그라운드를 구성합니다.
  2. cURL을 사용하여 POST Object 요청으로 JSON API를 호출합니다. 여기서 [VALUES_IN_BRACKETS]를 적절한 값으로 바꿉니다.
    curl -X POST \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        -H "Content-Length: 0" \
        "https://www.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]"

XML API

  1. OAuth 2.0 Playground에서 승인 액세스 토큰을 가져옵니다. OAuth 사용자 인증 정보를 사용할 수 있도록 플레이그라운드를 구성합니다.
  2. cURL을 사용하여 PUT Object 요청으로 XML API를 호출합니다. 여기서 [VALUES_IN_BRACKETS]를 적절한 값으로 바꿉니다.
    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]"

보관처리된 객체 버전 삭제

객체의 보관처리된 버전을 삭제하려면 다음을 따르세요.

gsutil

gsutil rm 명령어를 사용합니다. 여기서 [VALUES_IN_BRACKETS]를 적절한 값으로 바꿉니다.

gsutil rm gs://[BUCKET_NAME]/[OBJECT_NAME]#[GENERATION_NUMBER]

성공하면 다음 예와 같은 응답이 표시됩니다.

Operation completed over 1 objects.

REST API

JSON API

  1. OAuth 2.0 Playground에서 승인 액세스 토큰을 가져옵니다. OAuth 사용자 인증 정보를 사용할 수 있도록 플레이그라운드를 구성합니다.
  2. cURL을 사용하여 DELETE Object 요청으로 JSON API를 호출합니다. 여기서 [VALUES_IN_BRACKETS]를 적절한 값으로 바꿉니다.
    curl -X DELETE \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/o/[OBJECT_NAME]?generation=[GENERATION_NUMBER]"

XML API

  1. OAuth 2.0 Playground에서 승인 액세스 토큰을 가져옵니다. OAuth 사용자 인증 정보를 사용할 수 있도록 플레이그라운드를 구성합니다.
  2. cURL을 사용하여 DELETE Object 요청으로 XML API를 호출합니다. 여기서 [VALUES_IN_BRACKETS]를 적절한 값으로 바꿉니다.
    curl -X DELETE \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]?generation=[GENERATION_NUMBER]"
이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

도움이 필요하시나요? 지원 페이지를 방문하세요.