Нам нужно обрабатывать массовые загрузки файлов без затрат ресурсов на сервер IIS 7. Чтобы подчеркнуть, насколько легким это должно быть, скажем, нам нужно обрабатывать загрузку файлов абсолютно безумных размеров, например загрузку по 100 ГБ, или что-то, что может продолжаться в течение очень долгого времени без использования дополнительных ресурсов. В основном нам нужно что-то, что дает нам контроль над приемом файла с момента его начала до момента его окончания.
Немного фона:
Мы используем ColdFusion в качестве процессора на стороне сервера, но он потерпел неудачу при обработке загрузок свыше 1 ГБ, и мы исчерпали наши параметры конфигурации. За этим стоит длинная история, но, по сути, если страница загрузки .cfm (ColdFusion) является местом загрузки файла, и ее размер превышает 1 ГБ, это дает ошибку 503 ... даже если целевой файл не существует. Очевидно, что слишком много всего происходит, просто сообщая серверу, что мы намереваемся обработать файл со страницей .cfm.
Мы подозреваем, что это связано с ограничениями Java, поскольку сервер (или, в действительности, рабочая станция в этом случае) не показывает никаких признаков нагрузки на процессор или память. Поскольку у нас ограниченная память, и этот сайт предназначен для множества одновременных загрузок, мы не можем доверять просто увеличению использования памяти виртуальной машины, особенно потому, что это просто не работает в настоящее время, даже для одного соединения ... не говоря уже о сотни параллельных подключений, которые мы ожидаем, когда начнем жить.
Итак, мы приступили к написанию специализированного решения с использованием CGI, которое будет обрабатывать только загрузку файлов. По сути, нам необходим контроль на стороне сервера, который мы не получаем с ColdFusion или ASP.NET, потому что эти технологии делают так много самостоятельно, за кулисами, не предоставляя нам необходимый нам контроль. Они всегда заканчивают тем, что тратят слишком много ресурсов так или иначе по очевидно очевидной причине; то, что мы пытаемся сделать, является абсолютно безумным, а не предназначенной функцией этих технологий. Вот почему нам нужен специализированный загрузчик через CGI, который обходит всю эту магию ColdFusion / ASP.NET, которая продолжает мешать, надеясь, что она дает нам необходимый нам контроль.
Но прежде чем мы потратили бесчисленное количество часов на это, я решил спросить и посмотреть, знает ли кто-нибудь о правильном решении этой проблемы, которое может быть жизнеспособным в нашем случае.
Единственным реальным ограничением здесь является то, что это должен быть CGI, и он должен работать на IIS 7, поэтому в среде Windows Server. Мы в порядке с тем, что он написан на Python, Perl, назовите его ... при условии, что он может работать как CGI, но он должен работать как CGI ... если, конечно, у кого-то нет лучших идей о том, как это сделать.
Итак, магический вопрос таков; Существуют ли CGI-решения, которые уже делают это, или мы застряли в написании этого самостоятельно, надеясь, что причина, по которой еще никто не сделал этого, заключается в том, что это невозможно?
Заранее спасибо.