У меня есть скрипт Python CGI, который проверяет, не обращался ли он к нему много раз с одного и того же IP-адреса, и, если все в порядке, читает большой диск с файловой формой (11 МБ), а затем возвращает его для загрузки.
Работает, но производительность отстой. Узкое место, кажется, читает этот огромный файл снова и снова:
def download_demo():
"""
Returns the demo file
"""
file = open(FILENAME, 'r')
buff = file.read()
print "Content-Type:application/x-download\nContent-Disposition:attachment;filename=%s\nContent-Length:%s\n\n%s" % (os.path.split(FILENAME)[-1], len(buff), buff)
Как я могу сделать это быстрее? Я думал об использовании оперативного диска для хранения файла, но должно быть какое-то лучшее решение. Поможет ли использование mod_wsgi
вместо сценария cgi? Смогу ли я сохранить большой файл в памяти apache?
Любая помощь очень ценится.