Я знаю, что очень похожие вопросы были заданы раньше. Но я не думаю, что решения, которые я нашел в google/stackoverflow, подходят мне.Отправка больших файлов с помощью Spray
Я начал писать некоторые веб-сервисы с помощью Scala/Spray, и кажется, что лучший способ отправить большие файлы, не потребляя больших ресурсов памяти, - это использование сортировки потоков. Таким образом, Spray отправит http-фрагменты. Два вопроса:
Можно ли отправить файл без использования фрагментов HTTP и без чтения всего файла в память?
AFAIK akka.io обрабатывает только одну запись за раз, что означает, что она может буферизировать одну запись до тех пор, пока она не будет полностью передана ядру O/S. Можно ли сообщить Spray для каждого ответа HTTP длину содержимого? После этого Spray будет запрашивать новые данные (через сообщения akka) до завершения всей длины содержимого. Например, я указываю, что длина моего контента составляет 100 байт. Spray отправляет сообщение, запрашивающее данные для моего актера, я предоставляю 50 байтов. Когда эти данные передаются на O/S, спрей отправляет другое сообщение с запросом новых данных. Я предоставляю оставшиеся 50 байтов ... ответ завершен.
Спасибо! Отличный ответ! – sapito