이 페이지에서는 이전 객체를 나열, 액세스, 복원, 삭제하는 방법을 설명합니다. 이 방법은 일반적으로 객체 버전 관리 기능이 사용 설정된 버킷에 적용됩니다.
필요한 역할
이전 객체를 관리하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 스토리지 객체 사용자(roles/storage.objectUser
) IAM 역할을 부여해 달라고 요청하세요. 이 사전 정의된 역할에는 이전 객체를 관리하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 확장하세요.
필수 권한
storage.objects.create
storage.objects.delete
storage.objects.get
storage.objects.list
커스텀 역할을 사용하여 이러한 권한을 부여받을 수도 있습니다.
프로젝트에 대한 역할을 부여하는 방법은 프로젝트에 대한 액세스 관리를 참조하세요.
사용 사례에 따라 추가 권한이나 대체 역할이 필요할 수 있습니다.
Google Cloud 콘솔을 사용하여 이 페이지의 태스크를 수행하려면 스토리지 객체 사용자(
roles/storage.objectUser
) 역할에 포함되지 않은storage.buckets.list
권한도 필요합니다. 이 권한을 얻으려면 관리자에게 프로젝트에 대한 스토리지 관리자(roles/storage.admin
) 역할을 부여해 달라고 요청하세요.균일한 버킷 수준 액세스가 버킷에 중지된 경우 다음과 같은 시나리오에서는 추가 권한이 필요합니다.
ACL과 함께 이전 객체를 반환하려면 스토리지 객체 사용자(
roles/storage.objectUser
) 역할에 포함되지 않은storage.objects.getIamPolicy
권한도 필요합니다. 이 권한을 얻으려면 관리자에게 프로젝트에 대한 스토리지 객체 관리자(roles/storage.objectAdmin
) 역할을 부여해 달라고 요청하세요.ACL이 있는 이전 객체를 복원하거나 이름을 바꾸려는 경우 스토리지 객체 사용자(
roles/storage.objectUser
) 역할에 포함되지 않은storage.objects.setIamPolicy
권한도 필요합니다. 이 권한을 얻으려면 관리자에게 프로젝트에 대한 스토리지 객체 관리자(roles/storage.objectAdmin
) 역할을 부여해 달라고 요청하세요.
이전 객체 버전 나열
객체의 서비스 중인 버전 및 이전 버전을 모두 나열하고 해당 generation
번호를 보려면 다음 안내를 따르세요.
콘솔
- Google Cloud 콘솔에서 Cloud Storage 버킷 페이지로 이동합니다.
버킷 목록에서 원하는 객체가 포함된 버킷의 이름을 클릭합니다.
객체 탭이 선택된 상태로 버킷 세부정보 페이지가 열립니다.
이전 객체를 보려면 표시 드롭다운을 클릭하고 라이브 객체 및 이전 객체를 선택합니다.
객체 목록에서 버전을 보려는 객체의 이름을 클릭합니다.
객체 세부정보 페이지가 열리고 라이브 객체 탭이 선택됩니다.
버전 기록 탭을 클릭하여 객체의 모든 버전을 확인합니다.
명령줄
gcloud storage ls --all-versions
명령어를 사용합니다.
gcloud storage ls --all-versions 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 참고 문서를 확인하세요.
Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
C#
자세한 내용은 Cloud Storage C# API 참조 문서를 확인하세요.
Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Go
자세한 내용은 Cloud Storage Go API 참조 문서를 확인하세요.
Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Java
자세한 내용은 Cloud Storage Java API 참조 문서를 확인하세요.
Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Node.js
자세한 내용은 Cloud Storage Node.js API 참조 문서를 확인하세요.
Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
PHP
자세한 내용은 Cloud Storage PHP API 참조 문서를 확인하세요.
Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Python
자세한 내용은 Cloud Storage Python API 참조 문서를 확인하세요.
Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Ruby
자세한 내용은 Cloud Storage Ruby API 참조 문서를 확인하세요.
Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
REST API
JSON API
Authorization
헤더에 대한 액세스 토큰을 생성하려면 gcloud CLI가 설치 및 초기화되어 있어야 합니다.cURL
를 사용하여 객체: 목록 요청으로 JSON API를 호출합니다.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o?versions=true"
여기서
BUCKET_NAME
은 객체가 포함된 버킷의 이름입니다. 예를 들면my-bucket
입니다.
객체의 이전 버전에는 timeDeleted
속성이 있습니다.
XML API
Authorization
헤더에 대한 액세스 토큰을 생성하려면 gcloud CLI가 설치 및 초기화되어 있어야 합니다.사용
cURL
을 사용하여GET
버킷 요청 및versions
쿼리 문자열 매개변수로 XML API를 호출합니다.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?versions&list-type=2"
여기서
BUCKET_NAME
은 객체가 포함된 버킷의 이름입니다. 예를 들면my-bucket
입니다.
versions
쿼리 매개변수를 사용할 경우와 사용하지 않을 경우의 GET
요청 결과에는 몇 가지 차이점이 있습니다.
구체적으로, 요청에 versions
쿼리 매개변수를 포함하면 Cloud Storage가 다음 정보를 반환합니다.
- 각 객체에 대한 정보를 포함한
Version
요소 - 객체가 이전 버전이 된(삭제되거나 대체된) 시점을 포함한
DeletedTime
요소 - 특정 객체가 최신 버전인지 여부를 나타내는 IsLatest 요소
- 객체 목록이 부분 목록인 경우(버킷 한 개에 다수의 객체 버전이 있는 경우에 발생)
NextGenerationMarker
요소가 반환됩니다. 이 요소 값을 이후 요청의generationmarker
쿼리 매개변수에서 사용하여 마지막 지점에서 다시 시작할 수 있습니다.generationmarker
쿼리 매개변수는marker
쿼리 매개변수를 사용하여 버전 관리되지 않은 버킷의 목록 페이지를 매기는 것과 같은 방식으로 사용됩니다.
이전 객체 버전 액세스
객체 다운로드, 메타데이터 보기 또는 메타데이터 업데이트와 같은 작업을 수행할 때 객체의 이전 버전을 사용하려면 다음 안내를 따르세요.
콘솔
Google Cloud Console에서는 이전 버전에 대한 일반적인 액세스를 사용할 수 없습니다. Google Cloud Console을 사용해서는 현재 외 버전만 이동, 복사, 복원 또는 삭제할 수 있습니다. 이 작업은 객체의 버전 기록 목록에서 이루어집니다.
명령줄
다음과 같이 객체 이름에 이전 버전의 세대 번호를 추가합니다.
OBJECT_NAME#GENERATION_NUMBER
각 항목의 의미는 다음과 같습니다.
OBJECT_NAME
은 이전 버전의 이름입니다. 예를 들면pets/dog.png
입니다.GENERATION_NUMBER
는 이전 버전의 세대 번호입니다. 예를 들면1560468815691234
입니다.
이전 단계의 문자열을 사용하여 객체의 라이브 버전에서 평소에 하는 것과 동일하게 진행합니다. 예를 들어 이전 객체 버전의 메타데이터를 보려면
gcloud storage objects describe
명령어를 사용합니다.gcloud storage objects describe gs://my-bucket/pets/dog.png#1560468815691234
REST API
JSON API
다음과 같이 이전 버전의 세대 번호를 객체의 URI에 추가합니다.
https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?generation=GENERATION_NUMBER
각 항목의 의미는 다음과 같습니다.
BUCKET_NAME
은 이전 버전이 포함된 버킷의 이름입니다. 예를 들면my-bucket
입니다.OBJECT_NAME
은 이전 버전의 URL로 인코딩된 이름입니다. 예를 들어pets/dog.png
는pets%2Fdog.png
로 URL 인코딩됩니다.GENERATION_NUMBER
는 이전 버전의 세대 번호입니다. 예를 들면1560468815691234
입니다.
이전 단계의 URI를 사용하여 객체의 라이브 버전에서 평소에 하는 것과 동일하게 진행합니다. 예를 들어 이전 객체 버전의 메타데이터를 보려면 cURL을 사용하여 Objects: get 요청으로 JSON API를 호출합니다.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/my-bucket/o/pets/dog.png?generation=1560468815691234"
XML API
다음과 같이 이전 버전의 세대 번호를 객체의 URI에 추가합니다.
https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME?generation=GENERATION_NUMBER
각 항목의 의미는 다음과 같습니다.
BUCKET_NAME
은 이전 버전이 포함된 버킷의 이름입니다. 예를 들면my-bucket
입니다.OBJECT_NAME
은 이전 버전의 URL로 인코딩된 이름입니다. 예를 들어pets/dog.png
는pets%2Fdog.png
로 URL 인코딩됩니다.GENERATION_NUMBER
는 이전 버전의 세대 번호입니다. 예를 들면1560468815691234
입니다.
이전 단계의 URI를 사용하여 객체의 라이브 버전에서 평소에 하는 것과 동일하게 진행합니다. 예를 들어 이전 객체 버전의 메타데이터를 보려면
cURL
을 사용하여HEAD
객체 요청으로 XML API를 호출합니다.curl -I GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/my-bucket/pets/dog.png?generation=1560468815691234"
이전 객체 버전 복원
Cloud Storage에서 이전 객체 버전을 복원하는 것은 해당 버전의 사본을 만드는 것입니다. 그러면 사본이 서비스 중인 버전이 되어 실질적으로 해당 버전이 복원됩니다. 이미 서비스 중인 버전이 있고 버킷에 객체 버전 관리를 사용 설정한 경우 이전 버전을 복원하면 기존 서비스 중인 버전이 이전 버전이 됩니다.
콘솔
- Google Cloud 콘솔에서 Cloud Storage 버킷 페이지로 이동합니다.
버킷 목록에서 원하는 객체가 포함된 버킷의 이름을 클릭합니다.
객체 탭이 선택된 상태로 버킷 세부정보 페이지가 열립니다.
이전 객체를 보려면 표시 드롭다운을 클릭하고 라이브 객체 및 이전 객체를 선택합니다.
객체 목록에서 복원할 객체 버전의 이름을 클릭합니다.
객체 세부정보 페이지가 열리고 라이브 객체 탭이 선택됩니다.
버전 기록 탭을 클릭합니다.
원하는 버전의 복원 버튼을 클릭합니다.
객체 버전 복원 창이 열립니다.
확인을 클릭합니다.
명령줄
gcloud storage cp
명령어를 사용합니다.
gcloud storage cp gs://BUCKET_NAME/OBJECT_NAME#GENERATION_NUMBER gs://BUCKET_NAME/OBJECT_NAME
각 항목의 의미는 다음과 같습니다.
BUCKET_NAME
은 복원할 이전 버전이 포함된 버킷의 이름입니다. 예를 들면my-bucket
입니다.OBJECT_NAME
은 복원할 이전 버전의 이름입니다. 예를 들면pets/dog.png
입니다.GENERATION_NUMBER
는 복원할 이전 버전의 세대 번호입니다. 예를 들면1560468815691234
입니다.
성공하면 응답은 다음 예시와 같습니다.
Operation completed over 1 objects/58.8 KiB.
클라이언트 라이브러리
C++
자세한 내용은 Cloud Storage C++ API 참고 문서를 확인하세요.
Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
C#
자세한 내용은 Cloud Storage C# API 참조 문서를 확인하세요.
Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Go
자세한 내용은 Cloud Storage Go API 참조 문서를 확인하세요.
Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Java
자세한 내용은 Cloud Storage Java API 참조 문서를 확인하세요.
Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Node.js
자세한 내용은 Cloud Storage Node.js API 참조 문서를 확인하세요.
Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
PHP
자세한 내용은 Cloud Storage PHP API 참조 문서를 확인하세요.
Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Python
자세한 내용은 Cloud Storage Python API 참조 문서를 확인하세요.
Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Ruby
자세한 내용은 Cloud Storage Ruby API 참조 문서를 확인하세요.
Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
REST API
JSON API
Authorization
헤더에 대한 액세스 토큰을 생성하려면 gcloud CLI가 설치 및 초기화되어 있어야 합니다.cURL
를 사용하여POST
객체 요청으로 JSON API를 호출합니다.curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Length: 0" \ "https://storage.googleapis.com/upload/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME/rewriteTo/b/BUCKET_NAME/o/OBJECT_NAME?sourceGeneration=GENERATION_NUMBER"
각 항목의 의미는 다음과 같습니다.
BUCKET_NAME
은 복원할 이전 버전이 포함된 버킷의 이름입니다. 예를 들면my-bucket
입니다.OBJECT_NAME
은 복원할 이전 버전의 URL로 인코딩된 이름입니다. 예를 들어pets/dog.png
는pets%2Fdog.png
로 URL 인코딩됩니다.GENERATION_NUMBER
는 복원할 이전 버전의 세대 번호입니다. 예를 들면1560468815691234
입니다.
XML API
Authorization
헤더에 대한 액세스 토큰을 생성하려면 gcloud CLI가 설치 및 초기화되어 있어야 합니다.cURL
를 사용하여PUT
객체 요청으로 XML API를 호출합니다.curl -X PUT \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-copy-source: BUCKET_NAME/OBJECT_NAME" \ -H "x-goog-copy-source-generation:GENERATION_NUMBER" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
각 항목의 의미는 다음과 같습니다.
BUCKET_NAME
은 복원할 이전 버전이 포함된 버킷의 이름입니다. 예를 들면my-bucket
입니다.OBJECT_NAME
은 복원할 이전 버전의 URL로 인코딩된 이름입니다. 예를 들어pets/dog.png
는pets%2Fdog.png
로 URL 인코딩됩니다.GENERATION_NUMBER
는 복원할 이전 버전의 세대 번호입니다. 예를 들면1560468815691234
입니다.
객체 버전을 복원한 후 원래 이전 버전은 버킷에 계속 존재합니다. 이전 버전이 더 이상 필요하지 않으면 나중에 삭제하거나 객체 수명 주기 관리를 구성하여 지정한 조건을 충족할 때 이전 버전을 삭제할 수 있습니다.
이전 객체 버전 삭제
콘솔
- Google Cloud 콘솔에서 Cloud Storage 버킷 페이지로 이동합니다.
버킷 목록에서 원하는 객체가 포함된 버킷의 이름을 클릭합니다.
객체 탭이 선택된 상태로 버킷 세부정보 페이지가 열립니다.
이전 객체를 보려면 표시 드롭다운을 클릭하고 라이브 객체 및 이전 객체를 선택합니다.
객체(폴더에 있을 수 있음)로 이동합니다.
객체 목록에서 버전을 삭제하려는 객체의 이름을 클릭합니다.
객체 세부정보 페이지가 열리고 라이브 객체 탭이 선택됩니다.
버전 기록 탭을 클릭합니다.
원하는 버전의 체크박스를 선택합니다.
삭제 버튼을 클릭합니다.
버전 삭제 창이 열립니다.
텍스트 필드에
delete
를 입력하여 객체를 삭제할지 여부를 확인합니다.삭제를 클릭합니다.
명령줄
gcloud storage rm
명령어를 사용합니다.
gcloud storage 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 참고 문서를 확인하세요.
Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
C#
자세한 내용은 Cloud Storage C# API 참조 문서를 확인하세요.
Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Go
자세한 내용은 Cloud Storage Go API 참조 문서를 확인하세요.
Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Java
자세한 내용은 Cloud Storage Java API 참조 문서를 확인하세요.
Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Node.js
자세한 내용은 Cloud Storage Node.js API 참조 문서를 확인하세요.
Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
PHP
자세한 내용은 Cloud Storage PHP API 참조 문서를 확인하세요.
Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Python
자세한 내용은 Cloud Storage Python API 참조 문서를 확인하세요.
Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Ruby
자세한 내용은 Cloud Storage Ruby API 참조 문서를 확인하세요.
Cloud Storage에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
REST API
JSON API
Authorization
헤더에 대한 액세스 토큰을 생성하려면 gcloud CLI가 설치 및 초기화되어 있어야 합니다.cURL
를 사용하여DELETE
객체 요청으로 JSON API를 호출합니다.curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?generation=GENERATION_NUMBER"
각 항목의 의미는 다음과 같습니다.
BUCKET_NAME
은 삭제할 이전 버전이 포함된 버킷의 이름입니다. 예를 들면my-bucket
입니다.OBJECT_NAME
은 삭제할 이전 버전의 URL로 인코딩된 이름입니다. 예를 들어pets/dog.png
는pets%2Fdog.png
로 URL 인코딩됩니다.GENERATION_NUMBER
는 삭제할 이전 버전의 세대 번호입니다. 예를 들면1560468815691234
입니다.
XML API
Authorization
헤더에 대한 액세스 토큰을 생성하려면 gcloud CLI가 설치 및 초기화되어 있어야 합니다.cURL
를 사용하여DELETE
객체 요청으로 XML API를 호출합니다.curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME?generation=GENERATION_NUMBER"
각 항목의 의미는 다음과 같습니다.
BUCKET_NAME
은 삭제할 이전 버전이 포함된 버킷의 이름입니다. 예를 들면my-bucket
입니다.OBJECT_NAME
은 삭제할 이전 버전의 URL로 인코딩된 이름입니다. 예를 들어pets/dog.png
는pets%2Fdog.png
로 URL 인코딩됩니다.GENERATION_NUMBER
는 삭제할 이전 버전의 세대 번호입니다. 예를 들면1560468815691234
입니다.
다음 단계
- 자세한 예시를 비롯하여 객체 버전 관리에 대해 자세히 알아보기
- 버킷에서 객체 버전 관리 사용 설정 또는 중지
- 객체 수명 주기 관리를 사용하여 객체 버전을 자동으로 관리하는 방법 알아보기