Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PythonCherrypy和带有ssl的瓶子-服务器无法保存大于102199字节的文件_Python_Ssl_Cherrypy_Bottle - Fatal编程技术网

PythonCherrypy和带有ssl的瓶子-服务器无法保存大于102199字节的文件

PythonCherrypy和带有ssl的瓶子-服务器无法保存大于102199字节的文件,python,ssl,cherrypy,bottle,Python,Ssl,Cherrypy,Bottle,下一个问题仅在启用SSL时发生 我正在使用https运行一个瓶子版本为0.12.6和cherrypy版本为3.2.2的服务器。 客户端代码向服务器发送一个文件,服务器保存该文件。 当我发送一个大小低于102199字节的文件时,它被成功接收并保存。但是,当我发送一个大小大于或等于102199的文件时,会出现以下异常: 服务器代码: from bottle import request, response,static_file, run,server_names 从OpenSSL导入加密,SS

下一个问题仅在启用SSL时发生

我正在使用https运行一个瓶子版本为0.12.6和cherrypy版本为3.2.2的服务器。 客户端代码向服务器发送一个文件,服务器保存该文件。 当我发送一个大小低于102199字节的文件时,它被成功接收并保存。但是,当我发送一个大小大于或等于102199的文件时,会出现以下异常:

服务器代码:

from bottle import request, response,static_file, run,server_names
从OpenSSL导入加密,SSL 从瓶子导入瓶子、运行、请求、服务器名称、服务器适配器

app = Bottle()
app.mount('/test' , app)

class MySSLCherryPy(ServerAdapter):
    def run(self, handler):
        from cherrypy import wsgiserver
        server = wsgiserver.CherryPyWSGIServer((self.host, self.port), handler)
        server.ssl_certificate = "./cert"
        server.ssl_private_key = "./key"
        try:
            server.start()
        finally:
            server.stop()

@app.post('/upload')
def received_file():
  file = request.files.file
  # file.save("./newfile")
  file_path="./newfile"
  with open(file_path, 'w') as open_file:
        open_file.write(file.read())

if __name__=='__main__':
    server_names['mysslcherrypy'] = MySSLCherryPy
    run(app, host='0.0.0.0', port=4430, server='mysslcherrypy')
    exit(0)
为什么服务器无法获取超过给定限制的文件?我是否需要更改限制? (我试图在函数received_file处设置常量MEMFILE_MAX,但没有帮助) 如果服务器是http而不是https,问题就会消失

纯文本形式的异常(如果无法查看图像):

回溯(最近一次呼叫最后一次): 文件“/usr/lib/python2.6/site packages/瓶子.py”,第861行,在U形手柄中 返回路线。呼叫(**args) 包装器中的文件“/usr/lib/python2.6/site packages/battle.py”,第1727行 rv=回拨(*a,**ka) 文件“testser”,第28行,在收到的\u文件中 file=request.files.file 文件“/usr/lib/python2.6/site packages/battle.py”,第165行,在get 如果密钥不在存储器中:存储器[key]=self.getter(obj) 文件“/usr/lib/python2.6/site-packages/battle.py”,第1106行,在文件中 对于名称,self.POST.allitems()中的项: 文件“/usr/lib/python2.6/site packages/battle.py”,第165行,在get 如果密钥不在存储器中:存储器[key]=self.getter(obj) 文件“/usr/lib/python2.6/site packages/battle.py”,第1222行,在POST中 args=dict(fp=self.body,environ=safe\u env,keep\u blank\u values=True) 正文第1193行中的文件“/usr/lib/python2.6/site packages/瓶子.py” self.\u body.seek(0) 文件“/usr/lib/python2.6/site packages/battle.py”,第165行,在get 如果密钥不在存储器中:存储器[key]=self.getter(obj) 文件“/usr/lib/python2.6/site-packages/瓶子.py”,第1162行,正文 对于body_iter中的零件(读取函数、self.MEMFILE_MAX): 文件“/usr/lib/python2.6/site packages/瓶子.py”,第1125行,正文 部分=读取(最小值(最大读取,最小值)) 文件“/usr/lib/python2.6/site packages/cherrypy/wsgiserver/wsgiserver2.py”,第329行,已读 数据=self.rfile.read(大小) 文件“/usr/lib/python2.6/site packages/cherrypy/wsgiserver/wsgiserver2.py”,第1052行,已读 断言
bottle.BaseRequest.MEMFILE_MAX=30000000000