Я пишу небольшое приложение, которое позволит людям загружать и загружать файлы мне. Я добавил веб-сервис для этого приложения, чтобы предоставить возможность загрузки/загрузки таким образом, но я не слишком уверен в том, насколько хорошо моя реализация будет справляться с большими файлами.
В настоящее время определения методов загрузки и загрузки выглядят так (написано с использованием 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 ГБ), то он попытается помещать всю эту информацию в память и разбивать мои сервисы.
Итак, мой вопрос: вместо этого можно вернуть какой-то поток? Я бы предположил, что это не будет ужасно независимым от ОС. Хотя я знаю теорию, лежащую в основе веб-сервисов, практическая сторона - это то, что мне все еще нужно получить немного информации.
Приветствия для любого ввода, Ли