Я написал небольшое приложение, которое позволит людям загружать и скачивать мне файлы. Я добавил веб-сервис к этому приложению, чтобы таким образом предоставлять функции загрузки / выгрузки, но я не очень уверен, насколько хорошо моя реализация справится с большими файлами.
На данный момент определения методов выгрузки и загрузки выглядят так (написано с использованием Apache CXF):
boolean uploadFile(@WebParam(name = "username") String username,
@WebParam(name = "password") String password,
@WebParam(name = "filename") String filename,
@WebParam(name = "fileContents") byte[] fileContents)
throws UploadException, LoginException;
byte[] downloadFile(@WebParam(name = "username") String username,
@WebParam(name = "password") String password,
@WebParam(name = "filename") String filename) throws DownloadException,
LoginException;
Таким образом, файл загружается и загружается как байтовый массив. Но если у меня есть файл какого-то глупого размера (например, 1 ГБ), он наверняка попытается поместить всю эту информацию в память и завершит работу моего сервиса.
Итак, мой вопрос - можно ли вместо этого вернуть какой-нибудь поток? Я бы предположил, что это не будет ужасно независимым от ОС, хотя. Хотя я знаю теорию веб-сервисов, практическая сторона - это то, что мне все еще нужно, чтобы собрать немного информации.
Приветствия для любого входа,
Lee