2017-01-22 3 views
0

사례 : 많은 양의 이미지가 포함 된 S3 버킷에 큰 zip 파일이 있습니다. 메타 파일을 읽거나 전체 파일을 다운로드하지 않고 zip 파일 안에 몇 개의 파일이 있는지 알 수있는 방법이 있습니까?AWS S3에서 zip 파일을 다운로드하지 않고 카운트하는 방법은 무엇입니까?

파일이 로컬 일 때 파이썬에서 zipfile()으로 열면 파일 내부의 모든 목록을 반환하는 namelist() 메서드를 호출하고 계산할 수 있습니다. 그러나 파일을 다운로드 할 필요없이 S3에 파일을 저장하는 경우이를 수행하는 방법을 잘 모릅니다. 또한 이것이 람다와 함께 가능하다면 가장 좋을 것입니다.

답변

0

ZIP 파일을 다운로드하지 않고는 할 수 없습니다. S3에는 개체에 대해 수행 할 수있는 작업 수가 제한되어 있습니다.

Operations on Objects을 참조하십시오.

0

지금까지는 zip 파일을 다운로드하지 않고도 이러한 정보를 얻을 수 없습니다. s3에 업로드 할 때 필요한 정보를 zip 파일의 메타 데이터로 저장할 수 있습니다.

질문에서 언급 한 것처럼 파이썬 함수를 사용하여 추출하지 않고 파일 목록을 얻을 수 있습니다. 동일한 방법을 사용하여 파일 수를 가져 와서 특정 파일에 메타 데이터로 추가 한 다음 S3에 업로드 할 수 있습니다. 이 도움이

희망, 감사

0

당신은 아카이브의 일부 (예를 들어 처음에는 1MB의)을 다운로드 및 파일 목록을 볼 수 jar 도구를 사용하려고하고 속성을 수 있습니다

jar vt < first-part-of-archive.zip 

을 그리고 당신은 subprocess을 사용할 수 있습니다 파이썬에서이 데이터를 얻기위한 모듈.

+0

저는 Java에 익숙하지 않아이 프로젝트를 위해 Java로 작성된 부분이 없습니다. 얼마나 정확하게 파이썬에서 데이터를 얻기 위해 서브 프로세스 모듈을 사용할 것인가? 링크를 클릭했지만 404 오류가 발생했습니다. – alfredox

+0

우편 아카이브의 일부를 얻으려면 URL이있는 경우 [이 질문에 설명 된 방법을 사용할 수 있습니다 (http://stackoverflow.com/questions/23602412/only-download-a-part-of-the-document- using-python-requests). 'jar' 도구를 사용하면 불완전한 zip 파일의 내용을 읽을 수 있습니다 (파이썬 모듈 또는 unzip 도구가 작동하지 않음). –