Вы говорите, что хотите сделать следующее:
- Вы хотите загрузить что-либо через приложение Play на компьютер.
- Вы не хотите копировать его в локальный каталог машины.
Проблема здесь в том, куда должен идти файл?Если у меня есть приложение на сервере, и я загружаю свой файл с помощью этого метода, файл будет всегда первым на сервере.Потому что его нужно скопировать куда-то до того, как вы захотите переместить его в другое место (облако, другой сервер резервного копирования).
А как насчет чтения содержимого файлов?
Это еще один вопрос, не связанный с загрузкой, а не с чтением содержимого файлов, вы можете сделать это:
import scala.io.Source
val myFileContent = Source.fromFile("myFile.txt").getLines.mkString
Примечание об обновлении
Хорошо, в комментариях вы говорите, что у вас есть приложение A, для которого вы хотите получить содержимое файла и затем отправить его вприложение B. Ну, почему бы вам не сделать это:
Маршрут со строкой запроса : есть маршрут, который получает путь к файлу в виде строки запроса:
GET /file-content controllers.file.readContent (path: String)
Затем вы вызываете приложение следующим образом:
/file-content?path=whereever/i-want/myfile-be.txt
Метод для чтения содержимого и помещения его в ответ : Тогдав рамках вашего readContent
метода вы возвращаете тело файла тому, кто вызывает приложение A:
def readContent (filePath: String) = Action{
implicit request =>
Ok(Source.fromFile(filePath).getLines.mkString))
}
Обновление Примечание 2: не забывайте о безопасности!
Приведенное выше решение отлично работает для считывания данных и их возврата.Но вы также должны принять меры безопасности.Вы не хотите передавать содержимое файла любому, кто вызывает этот URL.Вы можете добавить токен в приложение вызывающего абонента, чтобы приложение, которое работает с содержимым данных, сначала проверило, авторизован ли пользователь, а затем проверило содержимое файла.