2011-09-03 5 views
0

웹 사이트의이 페이지를보십시오 : http://webpy.org/cookbook/storeupload/ 디스크에 파일을 쓰는 방법에주의하십시오.업로드 된 파일을 디스크에 씁니다.

현재 상황은 다음과 같습니다. 나는 256MB의 메모리와 512 개의 스왑으로 버추얼 박스 서버를 시작했습니다. 200MB보다 큰 파일을 업로드하는 즉시 ("페이지를 임시로 사용할 수 없습니다") 오류가 발생합니다.

파이썬 파일 쓰기 기능이 전체 파일을 메모리로 읽은 다음 제한된 메모리로 인해 추락했다고 생각합니다.

맞습니까? 그렇다면 해결책이 있습니까?

감사합니다.

답변

0

메모리에서 전체 파일을 읽지 않고 루프를 만들고 1024 바이트 청크로 파일을 전송하십시오.

0

나는 nginx, 특히 client_max_body_size 지시문을 올바르게 설정했습니다.

나는 당신이 옳다고 생각하는데, 당신의 문제는 나쁜 메모리 사용과 관련이있다. 그것은 아마도 read() 방법에서 온 것 같다.

size 인수없이 사용하면 파일의 전체 내용을 읽고 반환합니다. 파일은 컴퓨터의 메모리 크기와 거의 동일하기 때문에 프로그램이 실행되지 않아 충돌이 발생합니다.

해야 할 일은 investigate on better ways to copy a file in Python입니다.

관련 문제