2014-09-12 2 views
0

내 S3 버킷에서 버전 관리를 사용하고 있는데, 삭제 된 파일을 s3cmd과 같은 명령 줄 S3 클라이언트로 복원하려면 어떻게해야합니까? 파일의 다른 버전을 찾으려면 어떻게해야합니까? 지금까지 나는 이것을 달성하기 위해 Freeware Cloudberry Windows Client으로 회귀했다. 나는 또한 Boto Python library을 사용할 수 있다는 것을 알고 있지만 일반적인 명령 줄 도구를 선호합니다.S3에서 버전이있는 삭제 된 파일을 복원하는 명령 줄 도구는 무엇입니까?

답변

1

사용이 AWS CLI 명령 : (docs here) :이 객체의 목록을 반환

aws s3api list-object-versions --bucket mybucket 

, 예를 들면 :

이 이
{ 
    "DeleteMarkers": [ 
     ... 
    ], 
    "Versions": [ 
     { 
      "LastModified": "2015-11-17T12:25:01.000Z", 
      "VersionId": "Mj1.PcWG8e.C._7LhvFU131pXJ98abIl", 
      "ETag": "\"b76b2b775023e60be16bc332496f8409\"", 
      "StorageClass": "STANDARD", 
      "Key": "file1.txt", 
      "Owner": { 
       "DisplayName": "aws03005", 
       "ID": "b09 0e41acbdf98bc34ef4781f10e4aeebb7a495b8be78da0db884af2980ed38d" 
      }, 
      "IsLatest": true, 
      "Size": 30318 
     }, 
    ... 
} 

사용이 Key (파일 이름)과 VersionId 이전을 다운로드 버전 :

aws s3api get-object --bucket mybucket --key file1.txt --version-id Mj1.PcWG8e.C._7LhvFU131pXJ98abIl foo.txt 

tryi 삭제 된 파일을 얻으려면 get-objectVersions, 에 나열된 최신 버전이이 아니고 DeleteMarkers에 나열된 파일이어야합니다.

스크립트에서이를 수행하려면 --query 및/또는 jq이 도움이 될 수 있습니다.

+0

맞습니다. 더 나은 방법은 [Amazon에서 개발 한 공식 도구] (https : // aws.amazon.com/cli/). [s3cmd] (https://sourceforge.net/projects/s3tools/files/s3cmd/)의 개발은 어쨌든 말라 버린 것 같습니다. –

1

s3cmd 1.5.0-rc1은 현재 버전 관리 된 파일을 거의 지원하지 않습니다. 버전이있는 파일을 포함하여 전체 버킷 삭제를 수행 할 수 있다고 생각하지만 이는 버전이있는 파일에 대한 지원 범위입니다.

+0

나는이 끌어 오기 요청을 언급한다고 생각합니다. https://github.com/s3tools/s3cmd/pull/345 –

관련 문제