Cześć ! Mam task, ładować pliki 1-10GB na cloud storage.
Ja wyłączyłem multipart i zrobiłem prez commons-fileupload i common-io (kod poniżej):
public URL save(HttpServletRequest request) {
if (!ServletFileUpload.isMultipartContent(request))
throw new RequestIsNotMultipartException("Request is not a multipart content");
try {
FileItemIterator it = new ServletFileUpload().getItemIterator(request);
while (it.hasNext()) {
FileItemStream fis = it.next();
long[] size = new long[]{0};
String path = FileUtil.createPath();
IOUtils.copy(fis.openStream(), new FileOutputStream(path + fis.getName()) {
@Override
public void write(int arg0) {
++size[0];
}
});
}
} catch (FileUploadException | IOException e) {
throw new RuntimeException("Exception during uploading file into storage");
}
return null;
}
Teraz rozważam opcję żeby się nauczyć Spring Batch i użyć w swoim projekcie. O ile wiem, ten framework służy do pobrania/ładowania plików 1TB+.
Pytanie: Czy warto korzystać ze Spring Batch dla plików 1-10GB albo jednak zostać na jak na moim screenie?
Władyslaw ParchomenkoWładyslaw Parchomenko