사용자가 로컬 디렉토리에 동기화해야하는 수백 개의 이미지 파일을 Amazon S3에 저장합니다. 스토리지 공간과 대역폭을 절약하기 위해 S3에 저장된 파일을 압축합니다.압축되지 않은 로컬 파일을 Amazon S3에 저장된 압축 파일과 비교합니까?
사용자의 끝에는 5 분마다 실행되는 파이썬 스크립트가있어 현재 파일 목록을 얻고 새롭고 업데이트 된 파일을 다운로드합니다.
제 질문은 무엇이 새로운 것인지 또는 다운로드하기로 변경했는지 결정하는 가장 좋은 방법입니다. 우리는 압축
image_file_1.tif 17MB MD5 = xxxx1234
:
현재 우리는 우리는이 같은 파일로 시작 추가 우리는 압축되지 않은 파일의 MD5 값이 포함 된 압축 파일을 넣어 헤더 ...를 추가 그것은 (7zip과와)과 (파이썬/BOTO와) S3에 넣어 :
image_file_1.tif.z 9MB MD5 = yyy3456 x-amz-meta-uncompressedmd5 = xxxx1234
문제는 우리가 포함 S3에서 파일의 큰 목록을 얻을 수있는 X-AMZ-메타 uncompre 각 API에 대한 추가 API없이 ssedmd5 헤더 (수백/수천 개의 파일에 대한 SLOW).
가장 실용적인 솔루션은 사용자가 추가 헤더없이 파일의 전체 목록을 가져 와서 로컬에 존재하지 않는 파일을 다운로드하게하는 것입니다. 로컬에 존재하는 경우 추가 API 호출을 수행하여 전체 헤더를 가져 와서 x-amz-meta-uncompressedmd5에 대한 로컬 MD5 체크섬을 비교합니다.
나는 더 좋은 방법이 있어야한다고 생각합니다.
파일 이름이 엉망이되지 않도록하려면 image_file_1.tif.md5와 같은 MD5 콘텐츠가있는 다른 파일을 만들 수 있습니다. – Pih