引入相关依赖
<!-- https://mvnrepository.com/artifact/com.aliyun.oss/aliyun-sdk-oss --> <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>2.8.3</version> </dependency> <!-- https://mvnrepository.com/artifact/joda-time/joda-time --> <dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.10.10</version> </dependency>
上传实现
controller
/** * 文件上传 */ @PostMapping("upload") public R upload(@RequestParam("file") MultipartFile file) { String uploadUrl = fileService.upload(file); return R.ok().put("url", uploadUrl); }
service
public String upload(MultipartFile file) { //阿里云存储相关常量 String endPoint = ; String accessKeyId = ; String accessKeySecret = ; String bucketName = ; String fileHost = ; String uploadUrl = ; try { OSSClient ossClient = new OSSClient(endPoint, accessKeyId, accessKeySecret); if (!ossClient.doesBucketExist(bucketName)) { ossClient.createBucket(bucketName); ossClient.setBucketAcl(bucketName, CannedAccessControlList.PublicRead); } InputStream inputStream = file.getInputStream(); String filePath = new DateTime().toString("yyyy/MM/dd"); String original = file.getOriginalFilename(); String fileName = UUID.randomUUID().toString(); String fileType = original.substring(original.lastIndexOf(".")); String newName = fileName + fileType; String fileUrl = fileHost + "/" + filePath + "/" + newName; ossClient.putObject(bucketName, fileUrl, inputStream); ossClient.shutdown(); uploadUrl = "http://" + bucketName + "." + endPoint + "/" + fileUrl; }catch (Exception e){ return null; } return uploadUrl; }