- task-service создает файл Excel
- Он отправляет файл в системный сервис с помощью Feign ()
Код: Выделить всё
multipart/form-data
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 uploadFile(
@RequestPart("file") Resource file,
@RequestHeader MultiValueMap headers
);
}
Код: Выделить всё
ByteArrayResource resource = new ByteArrayResource(Files.readAllBytes(tempFile)) { @Override public String getFilename() { return fileName; } };
Код: Выделить всё
@PostMapping("/uploadFile")public Map uploadFile( @RequestPart("file") MultipartFile file, @RequestHeader MultiValueMap headers) { return awsService.uploadFile(file, headers); }
Код: Выделить всё
s3Client.putObject( request, RequestBody.fromInputStream(file.getInputStream(), file.getSize()) );
Загрузка иногда работает, но периодически происходит сбой:
java.util.concurrent.ExecutionException: feign.RetryableException: неполный поток вывода при выполнении POST http://localhost:9008/system-service/uploadFile