파일 업로드를위한 web.py 앱을 개발 중이고 배포에 실제 문제가 있습니다. 기본적으로 나는 사용자에게 '업로드 된 퍼센티지'를주고 싶지만, mod_wsgi에 배포 할 때 심각하게 엉망이되는 것 같다. 기본 업로드는 다음과 같이 작동합니다.web.py + mod_wsgi 파일 업로드 관련 문제
out = open(path, 'wb', 1000)
while (True):
packet = fileU.file.read(1000)
if not packet:
break
else:
out.write(packet)
sessions[code].progress += 1
out.close()
'세션'은 세션을 추적하는 개체가 포함 된 전역 사전입니다. 현재 진행률을 얻으려면 매 초마다 클라이언트의 GET 요청을 통해 주어진 세션에 대한 현재 진행률을 얻습니다.
현재 문제는 작은 업로드에만 적용된다는 것입니다. 약 100kb를 초과하는 것은 진행 변수를 증가시키지 않는 것 같습니다. 이 값은 루프 바깥에 (또는 read()가 호출되기 전에) 배치되거나 파일이 상당히 작 으면 확실히 증가됩니다.
wsgi가 더 큰 파일을위한 새로운 스레드를 열어 내 전역 스레드를 업로드 스레드에만 국한시킬 수 있습니까? 그것은 다른 것일 수 있습니다.
어쨌든 세션에 맞춤 데이터를 저장 하시겠습니까? 그리고 주어진 사용자에 대한 요청에서 세션을 검색하는 방법을 찾지 못하는 것 같습니다. – seadowg
세션 개체는 기본적으로 dict 인터페이스를 가지고 있으므로 원하는 데이터를 저장할 수 있어야합니다. 예를 들어 한 요청에 대해 [] 세션을 설정하면 다른 요청에서 [] 세션을 가져올 수 있습니다. 당신은 더 많은 또는 덜 * 실제 * 글로벌 사전으로 그것에 대해 생각할 수 있습니다. –
d0nut