Подтвердить что ты не робот

Модуль бутылки Python вызывает "Ошибка: 413 Request Entity Too Large"

Используя модуль Python bottle, я получаю ошибку HTTP 413 при отправке запросов размера телa > bottle внутренней константы MEMFILE_MAX. Ниже показан минимальный рабочий пример.

Серверная часть (server.py):

from bottle import *

@post('/test')
def test():
    return str(len(request.forms['foo']));

def main():
    run(port=8008);

if __name__ == '__main__':
    main();

Клиентская часть (client.py):

import requests

def main():
    url = 'http://127.0.0.1:8008/test';

    r = requests.post(url, data={ 'foo' : 100000 * 'a' });
    print(r.text);

    r = requests.post(url, data={ 'foo' : 200000 * 'a' });
    print(r.text);

if __name__ == '__main__':
    main();

Первый запрос печатает:

100000

Второй запрос печатает:

...
<body>
    <h1>Error: 413 Request Entity Too Large</h1>
    <p>Sorry, the requested URL <tt>&#039;http://127.0.0.1:8008/test&#039;</tt>
       caused an error:</p>
    <pre>Request to large</pre>
</body>
....

Я не знаю, как увеличить внутренний предел bottle. Есть ли простой способ увеличить лимит, разрешая запросы размера, например, 1 МБ?

4b9b3361

Ответ 1

Вы должны иметь возможность просто

import bottle
bottle.BaseRequest.MEMFILE_MAX = 1024 * 1024 # (or whatever you want)

Это, по-видимому, единственный способ, основанный на источнике