Как написать Java-программу для загрузки файла с unix-сервера в кластере вызывающему клиенту ⇐ Linux
-
Гость
Как написать Java-программу для загрузки файла с unix-сервера в кластере вызывающему клиенту
Я работаю в среде, где клиент отправляет HTTP-запрос на загрузку файла, который может находиться на нескольких серверах в кластере. В кластере около 5-10 серверов и запрос на скачивание файла может прийти на любой сервер кластера. Технически я могу знать, что IP-адрес Linux-сервера в файле присутствует. Теперь подход, который я рассматриваю, заключается в том, чтобы инициировать SFTP-соединение с известным IP-адресом с использованием библиотеки JSch и загрузить файл на сервер, на который впервые поступил HTTP-запрос. Но размер файла составляет 1–2 ГБ, и мне нужно передать весь файл по SFTP на мой основной сервер, куда пришел запрос, и оттуда отправить файл обратно в HTTP-ответе как поток приложения/октетов. Есть ли альтернативный способ, при котором мне не нужно копировать весь файл, а затем отправлять обратно HTTP-ответ. Есть ли способ использовать функцию Lambda для вызова целевого сервера и инициировать загрузку этого файла оттуда непосредственно клиенту. Любые ответы и помощь могут быть очень оценены. Этот процесс загрузки файла полностью реализован на языке Java. Могу ли я использовать Java Lambdas для запуска загрузки файла с целевого сервера непосредственно вызывающему абоненту?
Я работаю в среде, где клиент отправляет HTTP-запрос на загрузку файла, который может находиться на нескольких серверах в кластере. В кластере около 5-10 серверов и запрос на скачивание файла может прийти на любой сервер кластера. Технически я могу знать, что IP-адрес Linux-сервера в файле присутствует. Теперь подход, который я рассматриваю, заключается в том, чтобы инициировать SFTP-соединение с известным IP-адресом с использованием библиотеки JSch и загрузить файл на сервер, на который впервые поступил HTTP-запрос. Но размер файла составляет 1–2 ГБ, и мне нужно передать весь файл по SFTP на мой основной сервер, куда пришел запрос, и оттуда отправить файл обратно в HTTP-ответе как поток приложения/октетов. Есть ли альтернативный способ, при котором мне не нужно копировать весь файл, а затем отправлять обратно HTTP-ответ. Есть ли способ использовать функцию Lambda для вызова целевого сервера и инициировать загрузку этого файла оттуда непосредственно клиенту. Любые ответы и помощь могут быть очень оценены. Этот процесс загрузки файла полностью реализован на языке Java. Могу ли я использовать Java Lambdas для запуска загрузки файла с целевого сервера непосредственно вызывающему абоненту?
Мобильная версия