7,文件上传
创建Service接口:FileService.java
public interface FileService {/*** 文件上产到阿里云oss* @param file* @return*/String upload(MultipartFile file);}@Servicepublic class FileServiceImpl implements FileService {@Overridepublic String upload(MultipartFile file) {// 工具类获取值String endpoint = ConstantPropertiesUtil.END_POINT;String accessKeyId = ConstantPropertiesUtil.ACCESS_KEY_ID;String accessKeySecret = ConstantPropertiesUtil.ACCESS_KEY_SECRET;String bucketName = ConstantPropertiesUtil.BUCKET_NAME;try {// 创建OSS实例 。OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);//获取上传文件输入流InputStream inputStream = file.getInputStream();//获取文件名称String fileName = file.getOriginalFilename();//1 在文件名称里面添加随机唯一的值String uuid = UUID.randomUUID().toString().replaceAll("-","");// yuy76t5rew01.jpgfileName = uuid+fileName;//2 把文件按照日期进行分类//获取当前日期//2019/11/12String datePath = new DateTime().toString("yyyy/MM/dd");//拼接//2019/11/12/ewtqr313401.jpgfileName = datePath+"/"+fileName;//调用oss方法实现上传//第一个参数Bucket名称//第二个参数上传到oss文件路径和文件名称aa/bb/1.jpg//第三个参数上传文件输入流ossClient.putObject(bucketName,fileName , inputStream);// 关闭OSSClient 。ossClient.shutdown();//把上传之后文件路径返回//需要把上传到阿里云oss路径手动拼接出来//https://edu-guli-1010.oss-cn-beijing.aliyuncs.com/01.jpgString url = "http://"+bucketName+"."+endpoint+"/"+fileName;return url;}catch(Exception e) {e.printStackTrace();return null;}}}控制层
@RestController@RequestMapping("/eduoss")@CrossOriginpublic class FileUploadController {@Autowiredprivate FileService fileService;/*** 13* 文件上传* 14* <p>* 15** @param file 16*/@ApiOperation(value = https://www.isolves.com/it/cxkf/kj/2021-06-24/"文件上传")@PostMapping("upload")public R upload(@ApiParam(name = "file", value = "文件", required = true) @RequestParam("file") MultipartFile file) {String uploadUrl = fileService.upload(file);//返回r对象return R.ok().message("文件上传成功").data("url", uploadUrl);}}重启OSS服务,用Swagger进行测试 。
推荐阅读
- Springboot集成阿里云视频点播
- Beyond the Cache——阿里云Tair云内存数据库场景解读
- SpringBoot整合定时器:定时任务不再硬编码,动态定时刷起来
- SpringBoot的可视化接口开发工具
- Ubuntu 20.04更换阿里云源及安装完MySQL修改密码
- SpringBoot:拒绝大文件,夏天到了,来给jar包瘦个身
- 硬核资源!阿里内部强推IntelliJ IDEA 中的常用配置,还不赶紧收藏
- Springboot 动态设置注解参数值
- 聊一聊 SpringBoot 中配置加载优先级?
- springboot三种拦截器
