我正在构建一个内部 webapp 来处理 DNA 序列数据。我需要能够接受一个包含多个序列的压缩文件,该文件通常大于 30MB,并且可以大到 80MB。
我遵循了过去用于文件上传的模式:
class ABIUploadHanlder(Handler):
def POST(self):
x = web.input(abifile = {})
filedir = '/usr/local/www/wsgi-scripts'
if 'seqfile' in x:
time_key = str(time.time()).replace('.','')
filepath=x.seqfile.filename.replace('\\','/')
filename = time_key + 'abizipped.zip'
filetype = filename.split('.')[-1]
if filetype == 'zip':
pass
else:
raise web.seeother('/export?err=type')
fout = open(filedir +'/uploads/'+ filename,'w')
fout.write(x.seqfile.file.read())
fout.close()
raise web.seeother('/abiprocess')
当我将 30MB 的文件发布到 Web 表单时,我会出现奇怪的行为。有时上传会达到 30% 左右,然后重新启动。有时上传会在一次尝试后失败。在所有尝试中,上传从未完成,我最终收到“网页不可用”错误。
我的直觉是,我需要在某个地方告诉网站在上传期间保持连接,即使这需要很长时间。到目前为止,我还没有找到如何控制它。
任何帮助表示赞赏。