ARTICLE AD BOX
I’m facing an issue while uploading a file between two Spring Boot microservices using OpenFeign.
task-service generates an Excel file
It sends the file to system-service using Feign (multipart/form-data)
System-Service uploads the file to AWS S3
Feign Client
@FeignClient( name = "system-service", url = "${feign.client.main.url.system}", configuration = FeignMultipartConfig.class ) public interface SystemServiceClient { @PostMapping( value = "/system-service/uploadFile", consumes = MediaType.MULTIPART_FORM_DATA_VALUE ) Map<String, Object> uploadFile( @RequestPart("file") Resource file, @RequestHeader MultiValueMap<String, String> headers ); }File being sent
ByteArrayResource resource = new ByteArrayResource(Files.readAllBytes(tempFile)) { @Override public String getFilename() { return fileName; } };Controller in system-service
@PostMapping("/uploadFile") public Map<String, Object> uploadFile( @RequestPart("file") MultipartFile file, @RequestHeader MultiValueMap<String, String> headers) { return awsService.uploadFile(file, headers); }AWS upload
s3Client.putObject( request, RequestBody.fromInputStream( file.getInputStream(), file.getSize() ) );Issue:
The upload works sometimes, but intermittently fails with:
java.util.concurrent.ExecutionException: feign.RetryableException: Incomplete output stream executing POST http://localhost:9008/system-service/uploadFile
