2017-09-06 11 views
3

프로젝트를 버킷에 보관하고 있습니다 (gsutil rsync 사용). 각 업로드 후에 로컬 프로젝트 폴더와 버킷에 업로드 된 폴더를 비교해야한다는 것을 확인했습니다. 이렇게하면 로컬 데이터가 실제로 양동이에 완전히 업로드되었는지 확인할 수 있습니다.로컬 폴더와 버킷의 폴더를 비교하는 방법은 무엇입니까?

어떻게 이러한 테스트를 안정적으로 수행 할 수 있습니까?

답변

3

gsutil rsync 명령은 업로드 된 모든 파일에 대해 체크섬 확인을 수행합니다. Checksum Validation And Failure Handling에서 :

모든 업로드 또는 다운로드의 끝에서, 인 gsutil rsync를 명령 은 소스 파일의 체크섬이/객체가 대상 파일/개체의 체크섬과 일치하는지 확인합니다. 체크섬에 이 없으면 gsutil은 유효하지 않은 복사본을 삭제하고 경고 메시지를 인쇄합니다. 실패가 발생할 때

[싹둑]

rsync를 명령을 다시 시도합니다,하지만 충분히 실패가 특정 복사 중에 발생 또는 삭제 작업을 경우 명령은 실패합니다.

-C 옵션이 제공되면 명령은 실패한 개체를 건너 뛰고 계속 이동합니다. 동기화가 끝날 때 실패가 성공적으로 재 시도되지 않으면 rsync 명령은 실패 수를보고하고 0이 아닌 상태로 종료합니다. 이 지점에서 rsync 명령을 다시 실행할 수 있으며 복사 작업 및/또는 삭제 작업이 남아 있기 때문에 이 남아있게됩니다.

[싹둑]

인 gsutil의 재시도 처리에 대한 자세한 내용은 gsutil help retries를 참조하십시오.

그래서 수 :

  • 는 단순히 검사 합 오류가 -C 옵션
  • 고용 gsutil rsync CMDS를 치명적이고 직접 실패 추적을 사용 나타내는 경고에 대한 명령의 표준 출력/표준 오류 확인 결과 (결과적으로 일부 자동 재실행)
  • sync'd되어야하는 모든 파일의 대상에서 존재를 찾는 대신 (편집 적) 검사를 수행하십시오 (파일이 여전히 존재하는 경우). 그 내용은 체크섬 검사를 통과해야합니다.)
+0

정말 고맙습니다. 난 정말 파일이 이미있는 버킷에 신선한 프로젝트를 업로드하고 있습니다. 대신에'gsutil cp'를 사용 하시길 권합니다. – fredrik

+0

둘 중 어느 쪽이 더 편한 지 상관하지 않습니다. 내가'gsutil rsync'를 선호하는 이유는 단순히 동일한 명령을 다시 호출 할 수있는 문제가 있으며'gsutil cp '가 모든 것을 다시 복사하지 않는다면 무엇이 빠졌는지 계속해야한다는 것입니다. –