繁体   English   中英

web.py + mod_wsgi文件上传问题

[英]Problem with web.py + mod_wsgi file upload

我正在开发一个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是否有可能为更大的文件打开新线程,从而使我的全局计数器仅在上载线程本地? 可能是别的东西。

你不能只为此使用全局字典。 实际上,Web服务器很可能使用单独的线程来提供以下请求,并且无法保证会话字典是相同的。 尝试使用属于web.py的会话对象。 它使用数据库或文件来存储可以在不同线程或进程之间访问的数据。

web.py会话示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM