1.需要先创建阿里云账户,并开通oss对象存储
2.编写控制层 方法
@PostMapping("uploadOssFile") public R uploadOssFile(MultipartFile file){ //获取上传的文件 MultipartFile //返回上传的路径 String url = ossService.uploadFileAvatar(file); return R.ok().data("url",url); }
3.根据对象用法的官方介绍
4.编写业务层 方法,完成文件的上传
//将文件流上传的方法:参照官方 @Override public String uploadFileAvatar(MultipartFile file) { //使用工具类获取值 String endPoint = ConstantPropertiesUtils.END_POINT; String keyId = ConstantPropertiesUtils.KEY_ID; String keySecret = ConstantPropertiesUtils.KEY_SECRET; String bucketName = ConstantPropertiesUtils.BUCKET_NAME; try { // 创建OSSClient实例。 ossClient = new OSSClientBuilder().build(endPoint, keyId, keySecret); //获取长传文件的输入流 InputStream inputStream = file.getInputStream(); //取得文件真实名称 String fileName = file.getOriginalFilename(); //为这个文件名称加上唯一表示 String uuid = UUID.randomUUID().toString().replace("-", ""); fileName = uuid + fileName; //为这个文件名加上日期文件夹目录,获取当前时间 String dateTime = new DateTime().toString("yyyy/MM/dd"); fileName = dateTime +"/"+fileName; // 第一个参数是桶的名称 //第二个参数 是上传到oss文件路径和文件名 ossClient.putObject(bucketName, fileName, inputStream); // 关闭OSSClient。 ossClient.shutdown(); //上传文件之后返回url路径 //需要把上传到阿里云的oss路径手动拼接出来 //https://edu-guli-520.oss-cn-guangzhou.aliyuncs.com/ed9c4352394a4a589825ac952fc4cba41.jpeg String url = "https://"+bucketName+"."+endPoint+"/"+fileName; return url; } catch (Exception e) { e.printStackTrace(); return null ; } }
5.在前端页面调用这个开发接口就可以实现,文件上传!~
:action="BASE_API+'/eduoss/fileoss/uploadOssFile'"