当前位置: 首页 > 后端技术 > Java

springwebflux集成Mendmix上传组件上传文件到阿里云腾讯云

时间:2023-04-02 10:14:59 Java

众所周知,Spring云网关是基于webflux响应式编程方式实现的,那么我们如何将文件上传到阿里云等第三方云服务和腾讯云在webflux模式下的呢?以阿里云为例,我们使用Mendmix文件上传组件来实现上述需求。导入依赖com.mendmixmendmix-cos-adapter1.4.0com.aliyun.ossaliyun-sdk-oss3.11.3添加配置#aliyunOSSmendmix.cos.adapter.type=aliyunmendmix.cos.adapter。accessKey=5tHzzxhTs45tbUrKgTHYxxxxmendmix.cos.adapter.secretKey=aIDWMP2pbvFjML7tYAzfPXXXXXXXmendmix.cos.adapter.regionName=cn-guangzhou然后就是贴代码了@RestController@RequestMapping(GatewayConstants.PATH_PREFIX)publicclassCommonController{@Autowired(required=false)privateCosProvidercosProvider;@PostMapping("文件/上传")@ResponseBody@ApiMetadata(actionName="上传文件",permissionLevel=PermissionLevel.LoginRequired,requestLog=false)publicMono>upload(ServerHttpRequestrequest,@RequestPart("file")FilePartfilePart){FluxbufferFlux=filePart.content();单声道>单声道;mono=bufferFlux.map(dataBuffer->dataBuffer.asInputStream())//.reduce(SequenceInputStream::new)//.flatMap(inputStream->{try{byte[]bytes=IOUtils.toByteArray(inputStream);CUploadResult结果=cosProvider.upload(newCUploadObject(bytes,null));returnMono.just(newWrapperResponse<>(result));}catch(IOExceptione){e.printStackTrace();returnMono.just(newWrapperResponse<>(500,"上传失败"));}});返回单声道;}}就是这样!Mendmix定位为一站式分布式开发架构开源解决方案和云原生架构技术基地。Mendmix提供数据库、缓存、消息中间件、分布式定时任务、安全框架、网关以及主流云服务的快速集成能力。基于Mendmix,无需关注技术细节,即可快速构建基于微服务的高并发、高可用的分布式架构。

最新推荐
猜你喜欢