- 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