** * 阿里云 OSS 工具类 */ 配置
AliOSSProperties
@Data @Component @ConfigurationProperties(prefix = "aliyun.oss") //先定义这个是为了让application能够识别到 public class AliOSSProperties { private String endpoint ; private String accessKeyId; private String accessKeySecret; private String bucketName ; }
@Component public class AliOSSUtils { // private String endpoint ; // private String accessKeyId; // private String accessKeySecret; // private String bucketName ; @Autowired AliOSSProperties aliOSSProperties; /** * 阿里云 OSS 工具类 实现上传图片到OSS */ public String upload(MultipartFile file) throws IOException { String endpoint = aliOSSProperties.getEndpoint(); String accessKeyId = aliOSSProperties.getAccessKeyId(); String accessKeySecret = aliOSSProperties.getAccessKeySecret(); String bucketName = aliOSSProperties.getBucketName(); // 获取上传的文件的输入流 InputStream inputStream = file.getInputStream(); // 避免文件覆盖 String originalFilename = file.getOriginalFilename(); String fileName = UUID.randomUUID().toString() + originalFilename.substring(originalFilename.lastIndexOf(".")); //上传文件到 OSS OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); ossClient.putObject(bucketName, fileName, inputStream); //文件访问路径 String url = endpoint.split("//")[0] + "//" + bucketName + "." + endpoint.split("//")[1] + "/" + fileName; // 关闭ossClient ossClient.shutdown(); return url;// 把上传到oss的路径返回 } }