Я использую RESTful API с использованием скриптов Apache и cgi, а производительность критически важна. Мне нужно перенести данные в скрипт cgi наиболее эффективным способом. Это означает наименьшее количество временных файлов или буферизацию ОЗУ. В идеале я бы пошел из IP-пакетов в буфер 1 МБ RAM один раз, а затем в пункт назначения. Поиск в Интернете и в этом блоге очень мало информации об эффективности трансферов.оптимизация загрузки файлов cgi
Mod_perl часто упоминается, и я понимаю эффективность там, поскольку интерпретатор perl оптимизирован в Apache. Но где вы можете получить подробную информацию о буферизации для запросов POST к скрипту cgi?
Вот конкретный вопрос, который у меня есть: если я использую curl для POST формы, которая просто загружает файл, то cgi-скрипт не получает никаких данных из STDIN. Я получаю данные из файла просто отлично, но это не через STDIN, а через url_param. Я знаю, что я выполняю POST, потому что $ ENV имеет это как POST. Так почему я не вижу данные STDIN?
Второй вопрос: может ли кто-нибудь узнать о выполнении различных типов переноса?
У меня нет точных ответов. Но использование сценариев CGI AD 2013 для обеспечения критического RESTFul API не кажется практичным. Когда вы предпочитаете Perl, вы можете использовать некоторую микроструктуру, например [Dancer] (https://metacpan.org/module/Dancer) или [Mojolicious] (https://metacpan.org/module/Mojolicious), там уже сделано много работы, чтобы получить услуги RESTful. Если вам по-прежнему нужна помощь в скриптах CGI, вы можете поделиться некоторым примером кода для работы. –
Я смотрел на Mojolicious, и я продолжу держать это в уме. Я был обеспокоен принятием всей структуры. Я также работаю в безопасной среде, и получить одобрение для пакетов perl проще, чем целая структура. Легче скрыть вещи в рамках. Я работал над этим, поэтому я разместил код. – tradetree