DNA 配列データを処理するための内部 webapp を構築しています。多くの場合、30MB を超え、最大 80MB になる複数のシーケンスの zip ファイルを受け入れることができる必要があります。
過去にファイルのアップロードに使用したパターンに従いました。
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% に達してから再起動することがあります。1 回の試行でアップロードが失敗する場合があります。すべての試行でアップロードが完了せず、最終的に「Web ページが利用できません」というエラーが表示されます。
私の推測では、アップロードに時間がかかっても、どこかでサイトに接続を維持するように指示する必要があります。これまでのところ、これを制御する方法を見つけることができませんでした。
どんな助けでも大歓迎です。