Mam połączenie z serwisem, za pomocą którego można przesyłać pliki zip. Pliki są następnie przekazywane do innej usługi do przechowywania, rozpakowywania itp. Na razie plik jest przechowywany w systemie plików, a następnie zbudowany jest obiekt FileSystemResource.Jak przekazywać duże pliki za pomocą narzędzia RestTemplate?
Resource zipFile = new FileSystemResource(tempFile.getAbsolutePath());
mogę użyć ByteStreamResource w celu zaoszczędzenia czasu (zapisywanie pliku na dysku nie jest potrzebne przed przekazaniem), ale za to muszę zbudować tablicę bajtów. W przypadku dużych plików otrzymam komunikat "OutOfMemory: java heap space".
ByteArrayResource r = new ByteArrayResource(inputStream.getBytes());
Jakieś rozwiązanie przekazywania plików bez uzyskania błędu OutOfMemory za pomocą RestTemplate?
Can przekazujesz strumień wejściowy do innej usługi? Albo będziesz musiał napisać strumień wejściowy do pliku, a następnie przekazać uchwyt pliku do usługi. Ponadto, nie wiesz, jak to się ma do Groovy? –
Nie znalazłem sposobu, aby po prostu przekazać strumień wejściowy. Użyłem tagu Groovy, ponieważ kod jest w groovy (java InputStream nie ma metody getBytes) –
Ahhh, zostałem rzucony, gdy piszesz to w bardzo stylu Java ;-) A zatem, co akceptuje ta druga usługa? –