수천 개의 파일과 20 개가 넘는 하위 디렉토리가있는 55GB 폴더를 가져 s3 sync
오거나 s3 cp
작업 할 수 없었습니다 . 전체 폴더를 동기화하려고하면 버킷에 아무것도 업로드하지 않고 awscli가 자동으로 실패합니다.
모든 하위 디렉토리와 내용을 먼저 동기화하기 위해이 작업을 완료했습니다 (폴더 구조는 유지됨).
nice find . -mindepth 1 -maxdepth 1 -type d | cut -c 3- | while read line; do aws s3 sync $"$line" "s3://bucketname/$line"; done
그런 다음 최상위 레벨에서 30,000 개의 파일을 얻기 위해이 작업을 수행했습니다.
nice find . -mindepth 1 -maxdepth 1 -type f | cut -c 3- | while read line; do aws s3 cp "$line" "s3://bucketname/";
서버의로드를 확인하고 (로드를 w
표시하는 데 사용할 수있는 팁 ) ctrl-z
로드가 너무 높으면 명령을 일시 중단하십시오. ( fg
다시 계속하기 위해).
비슷한 상황에있는 사람을 돕기 위해 여기에 두십시오.
노트:
-mindepth 1
제외하다 .
-maxdepth 1
하위 디렉토리의 컨텐츠를 s3 sync
성공적으로 처리 하므로 찾기가 하위 디렉토리의 컨텐츠를 나열하지 못하게 합니다.
cut -c 3-
find에서 각 결과의 시작 부분에서 "./"를 제거합니다.
aws s3 cp --recursive mylocalsrcdir s3://bucket/
파일을 로컬 저장소의 버킷 "루트 디렉토리"aws s3 cp --recursive mydirectory s3://bucket/mydirectory
에 배치하면 대상 엔드에서 디렉토리 구조가 다시 작성됩니다.