2017-05-17 1 views
4

Google 클라우드 저장소에 버킷이 몇 개 있으며 버킷이 모두 비어있어 내 라이프 사이클 파일이 올바르게 설정되지 않았다고 추측합니다.전체 버킷 복원

{ 
    "lifecycle": { 
    "rule": [ 
     { 
     "action": {"type": "Delete"}, 
     "condition": { 
      "age": 60, 
      "isLive": false 
     } 
     }, 
     { 
     "action": {"type": "Delete"}, 
     "condition": { 
      "numNewerVersions": 3 
     } 
     } 
    ] 
    } 
} 

I가 켜져 버전 관리하고 나는 모든 파일을 복원하고 내가 그들을 다시 삭제되는 방법을 유지할 수있는 방법이 양동이에 ls -la을 사용하여 파일을 볼 수 있기 때문에?

답변

0

위의 라이프 사이클 구성을 고려하면 라이브 개체 은 적어도 GCS 수명주기 관리 프로세스가 아닌이 삭제되어서는 안됩니다. 에 관계없이

, 내가 생각할 수있는 오브젝트를 복원하는 가장 빠른 방법은 gsutil's instructions for copying versioned buckets을 다음입니다 :

$ gsutil mb gs://mynewbucket 

# This step is only necessary if you want to keep all archived versions. 
$ gsutil versioning set on gs://mynewbucket 

$ gsutil cp -r -A gs://oldbucket/* gs://mynewbucket 

이것은에서 최신에 오래된 순서대로 각 개체의 보관 된 모든 버전을 복사합니다 새 양동이에 오래 된 양동이입니다. 새 버킷에서 버전 관리를 사용하지 않으면 마지막에 각 객체의 복사본 하나만 남게됩니다 (객체의 복사 된 각 버전은 해당 객체의 이전 버전을 덮어 씁니다). 또한 라이브 버전이없는 객체의 경우 가장 최근의 아카이브 된 버전이 새 버킷의 라이브 버전이됩니다.

+1

나는 이것이 유일한 방법이라고 생각합니다 ... 나쁜쪽으로 거기에 살기 위해 다시 설정하는 파일의 메타 생성을 변경하는 방법은 없습니다. 파일 x # 개당 비용은 데이터 전송과 동일하더라도 마찬가지입니다. –

관련 문제