相关疑难解决方法(0)

Gunicorn工人超时错误

我设置了gunicorn与3名工人30个工人连接并使用eventlet工人类.它是在Nginx背后设置的.在每几个请求之后,我在日志中看到了这一点.

[ERROR] gunicorn.error: WORKER TIMEOUT (pid:23475)
None
[INFO] gunicorn.error: Booting worker with pid: 23514
Run Code Online (Sandbox Code Playgroud)

为什么会这样?我怎么能弄清楚什么是错的?

谢谢

gunicorn

152
推荐指数
11
解决办法
10万
查看次数

使用瓶子(或烧瓶或类似物)上传文件

我有一个使用Python/Bottle编写的REST前端来处理文件上传,通常是大文件上传.API以这样一种方式得到:

客户端将PUT作为有效负载发送给文件.除其他外,它发送日期和授权标头.这是针对重播攻击的安全措施 - 请求使用临时密钥,使用目标网址,日期和其他一些内容进行烧录

现在问题.如果提供的日期在15分钟的给定日期时间窗口中,则服务器接受请求.如果上传需要足够长的时间,则会比允许的时间增量更长.现在,使用装饰器瓶视图方法完成请求授权处理.但是,除非上传完成,否则瓶子不会启动调度过程,因此验证会在较长的上载时失败.

我的问题是:有没有办法解释瓶子或WSGI立即处理请求并流式传输上传?由于其他原因,这对我也很有用.或任何其他解决方案?在我写这篇文章时,我想到了WSGI中间件,但我仍然喜欢外部洞察力.

我愿意切换到Flask,甚至其他Python框架,因为REST前端非常轻量级.

谢谢

python rest file-upload bottle

11
推荐指数
1
解决办法
9134
查看次数

Flask中的大文件上传

我正在尝试实现一个用于上传文件的烧瓶应用程序.这个文件可能非常大.例如,几乎2G的大小.

我已完成服务器端进程功能,如下所示:

@app.route("/upload/<filename>", methods=["POST", "PUT"])
def upload_process(filename):
    filename = secure_filename(filename)
    fileFullPath = os.path.join(application.config['UPLOAD_FOLDER'], filename)
    with open(fileFullPath, "wb") as f:
        chunk_size = 4096
        while True:
            chunk = flask.request.stream.read(chunk_size)
            if len(chunk) == 0:
                return

            f.write(chunk)
    return jsonify({'filename': filename})
Run Code Online (Sandbox Code Playgroud)

至于浏览器方面,我应该给用户一个提交文件.一次一个文件.显示进度条以指示上载过程.但我不知道浏览器端代码.如何使用javascript代码开始上传并显示状态?

python file-upload large-files flask

9
推荐指数
1
解决办法
6374
查看次数

标签 统计

file-upload ×2

python ×2

bottle ×1

flask ×1

gunicorn ×1

large-files ×1

rest ×1