2016-06-08 4 views
0

S3에서 전체 저장소를 다운로드하고 싶습니다. 어떻게 하나 wget과 같은 쉽게 사용할 수있는 도구와 설명서를 최소한의 노력으로이 문제를 다운로드해야 버킷 내가 /pavlo/sequence-snappy/5nodess3에서 공용 버킷 다운로드 (s3cmd)

에서 모든 것을하고 싶습니다 https://s3.amazonaws.com/big-data-benchmark/pavlo

에 도달 알아? (. S3 도구는 내가 가지고 원하지 않는, 실제 S3 계정이 필요합니다) 수작업의 비트가 필요하지만

답변

0

이 그것을 할 수있는 방법입니다

고토 버킷 HTTP URL 및 ?marker=/pavlo/sequence-snappy/5nodes을 추가하면 https://s3.amazonaws.com/big-data-benchmark/pavlo/sequence-snappy/5nodes

이됩니다. 이제 데이터 세트가 얼마나 큰지 수동으로 바이너리 검색합니다. 다행히도, 특정 버킷의 목록은 예측이며 000000_0-000099_0

를 사용하여 다음과 같은 쉘 한 줄에 이르기까지 100 개 항목 갖고있는 것 같아요 :

for i in {0000..0099}; do echo https://s3.amazonaws.com/big-data-benchmark/pavlo/sequence-snappy/5nodes/rankings/00${i}_0; done | xargs -n1 -P8 wget 

은 바람직하게는 우리가 더 일반적인 솔루션을 원하는을하는 예측할 수없는 파일 이름에서도 작동합니다.

0

S3 도구는 공개 버킷에 대한 익명 액세스를위한 계정이 필요하지 않습니다. (아니다 누구나 무료 계정을 원하지 않는 이유를 이해 할, 그러나 나는 탈선한다.)

을하지만, 여기에 키 (경로/파일 이름) 알려진 또는 예측하지 않을 때 작동하는 솔루션입니다 :

하는 경우 버킷은 공개적으로 공개됩니다.이 버킷의 루트에있는 모든 키의 페이지 매김 XML 목록을 확인할 수 있습니다.

curl -v https://s3.amazonaws.com/big-data-benchmark/ 등이있다.

<Key>에는 개체 경로가 포함되어 있습니다. 이는 List Objects V1 API이므로 ?marker=을 추가하고 다음 요청시 목록의 마지막 키 값을 입력하여 목록을 다시 시작하고 <IsTruncated>이 더 이상 true가 아닐 때까지 프로세스를 반복합니다.

버킷 URL에 키를 추가하여 curl, wget 또는 http 클라이언트에 전달할 목록을 작성하려면이 옵션을 사용하십시오. S3는 많은 병렬 요청을 처리 할 수 ​​있으므로 프로세스를 병렬화해야 할 수 있습니다.

+0

공개 버킷에서 s3cmd를 사용하여 실제로 다운로드 할 수 없었습니다. 항상 구성을 요구합니다. "무료"계정에 관해서는 - 나는 처음부터 아무 것도 사지 않을 경우 아마존에 내 신용 카드 정보 (필수)를 제공 할 의사가 없습니다. – hbogert

관련 문제