Не зная больше деталей, я думаю, что вы в конечном итоге прибили это. Я бы разбил данные на куски, а затем запустил программу, чтобы прочитать один из этих кусков и отправить эти данные в ваш http-интерфейс.
Скрипт / программа, которая выполняет импорт, должна работать только с порцией, достаточно маленькой, чтобы избежать тайм-аутов, и должна знать о ее успехе или нет. В случае, если для части истекает время или происходит сбой, вам следует убедиться, что вы знаете, в каком месте импорта вы находились, чтобы иметь возможность повторить попытку из того же места.
Сказав все это, также хорошо, если ваша система позволяет импортировать одно и то же несколько раз без последствий (см. http://en.wikipedia.org/wiki/Idempotence), так что в случае, если вам придется полностью повторно отправить 1 сегмент, ваш restful backend сможет принять его без дублирования данных.
Если вы работаете хорошо, вы можете даже запустить свою программу импорта из нескольких блоков одновременно, чтобы сделать ее параллельной и более быстрой. (до тех пор, пока ваш http / restful бэкэнд может справиться с этим)