SpringBoot上传文件到阿里云OSS服务器(二)
1.api开放fegin接口
@RequestMapping("/audio/risk")
public interface AudioRecordClient {
@PostMapping(value = "saveAudio", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
RestResponse save(@RequestPart(value = "file",required = true) MultipartFile file,
@RequestParam(required = true) Long userId,
@RequestParam(required = true) Long orderId,
@RequestParam(required = false) Long travelId,
@RequestParam(required = false) Date startTime,
@RequestParam(required = false)Date endTime)
}
2.主服务调用开放的fegin接口(maven)
<dependency>
<groupId>com.meng</groupId>
<artifactId>carpool-risk-api</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.meng</groupId>
<artifactId>carpool-risk-dto</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
3.主服务主服务调用开放的fegin接口
import org.springframework.cloud.openfeign.FeignClient;
@FeignClient(name="carpool-risk",fallback = AppRiskLicenseCallBack.class)
public interface AppRiskLicenseClient extends AudioRecordClient {
}
@Slf4j
@Service
@RequiredArgsConstructor
public class RiskServiceImpl implements IRiskService {
private final AppRiskLicenseClient appRiskLicenseClient;
@Override
public boolean saveAudio(MultipartFile file, Long userId, Long orderId, Long travelId, Date startTime, Date endTime) {
RestResponse result = appRiskLicenseClient.save(file, userId, orderId, travelId, startTime, endTime);
log.info(result.getCode());
if(result.getCode().equals("000000")){
return true;
}
return false;
}
}
4.强调
1.@RequestPart(value = “file”,required = true) MultipartFile file
2.consumes = MediaType.MULTIPART_FORM_DATA_VALUE
不使用@RequestParam()
只是把暴露的接口RequestParam(value = “file”,required = true) MultipartFile file 改成
@RequestPart(value = “file”,required = true) MultipartFile file 只改暴露接口