package com.mzl.flower.service; import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; import com.mzl.flower.config.OssProperties; import com.mzl.flower.utils.UUIDGenerator; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.InputStream; @Service @Transactional public class UploadService { @Autowired private OssProperties ossProperties; public String upload(InputStream inputStream, String fileName) { //获取阿里云存储相关常量 String endPoint= ossProperties.getEndpoint(); String accessKeyId = ossProperties.getKeyid(); String accessKeySecret = ossProperties.getKeysecret(); String bucketName = ossProperties.getBucketname(); try { //创建OssClient实例 OSS ossClient = new OSSClientBuilder().build(endPoint, accessKeyId, accessKeySecret); //获取文件名称 String filename = fileName; //使文件名称唯一 String uuid = UUIDGenerator.getUUID(); filename = uuid + filename; String dir = uuid.substring(0, 2); filename = dir + "/" + filename; //调用oss方法实现上传 //参数:bucketName;上传到oss文件路径和文件名称;上传文件输入流 ossClient.putObject(bucketName, filename, inputStream); //关闭OSSclient ossClient.shutdown(); // 把上传之后文件路径返回,需手动拼接上传到阿里云的oss路径 // https://edu-mys.oss-cn-chengdu.aliyuncs.com/yy.JPG String url = bucketName + "." + endPoint + "/" + filename; return url; } catch (Exception e) { e.printStackTrace(); return null; } } }