blob: 89df4f3f1f5f665b0d0253a2e17afc874c0e1fb9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
import tempfile
from flask import current_app
import werkzeug.formparser
import werkzeug.wrappers
def werkzeug_patch():
global werkzeug_orig_stream_factory
werkzeug_orig_stream_factory = werkzeug.formparser.default_stream_factory
def custom_stream_factory(total_content_length, filename, content_type, content_length=None):
if total_content_length > 1024 * 500:
return tempfile.NamedTemporaryFile('wb+', prefix='upload_',
dir=current_app.config['FILE_DIRECTORY'], delete=True)
return werkzeug_orig_stream_factory(total_content_length, filename, content_type, content_length)
werkzeug.formparser.default_stream_factory = custom_stream_factory
werkzeug.wrappers.default_stream_factory = custom_stream_factory
def werkzeug_reset():
werkzeug.formparser.default_stream_factory = werkzeug_orig_stream_factory
werkzeug.wrappers.default_stream_factory = werkzeug_orig_stream_factory
def patch():
werkzeug_patch()
|