主页 > 其他  > 

阿里云oss文件上传springboot若依java

阿里云oss文件上传springboot若依java

一、第一步

        引入依赖

<!-- 阿里云OSS --> <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> </dependency>

二、第二步      

          application.yml

#阿里云oss服务配置 aliyun: oss: endpoint: oss-cn-hangzhou.aliyuncs accessKeyId: LTAI4G9eB********** accessKeySecret: zsAM2Jkr******* bucketName: *****

其中bucketName是 存储空间名称,注意这以下几个地方         

三、第三步

import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class OssConfig { @Value("${aliyun.oss.endpoint}") private String endpoint; @Value("${aliyun.oss.accessKeyId}") private String accessKeyId; @Value("${aliyun.oss.accessKeySecret}") private String accessKeySecret; @Bean(destroyMethod = "shutdown") public OSS ossClient() { return new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); } }

四、第四步

import com.aliyun.oss.OSS; import com.oversea mon.config.OverseaConfig; import com.oversea mon.core.domain.AjaxResult; import com.oversea mon.utils.file.FileUploadUtils; import com.oversea mon.utils.file.FileUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.io.InputStream; import java.time.LocalDate; import java.util.UUID; @Service public class OssService { @Autowired private OSS ossClient; @Value("${aliyun.oss.bucketName}") private String bucketName; @Value("${aliyun.oss.endpoint}") private String endpoint; /** * 上传文件到OSS的指定路径 /oss/uploads/oversea/YYYY/MM/DD/ */ public AjaxResult uploadFile(MultipartFile file) throws IOException { try (InputStream inputStream = file.getInputStream()) { // 获取当前日期 LocalDate now = LocalDate.now(); // 构建目标文件夹路径(格式:oss/uploads/oversea/YYYY/MM/DD/) String folderPath = String.format("oss/uploads/oversea/%d/%02d/%02d/", now.getYear(), now.getMonthValue(), now.getDayOfMonth()); // 确保文件夹路径以斜杠结尾(这里已经确保了) // 构建唯一文件名,包含指定的文件夹路径 String fileName = folderPath + UUID.randomUUID() + "_" + file.getOriginalFilename(); // 上传文件流到指定位置 ossClient.putObject(bucketName, fileName, inputStream); // 返回文件访问链接 String url = " " + bucketName + "." + endpoint + "/" + fileName; AjaxResult ajax = AjaxResult.success(); ajax.put("url", url); ajax.put("fileName", fileName); ajax.put("newFileName", fileName.substring(fileName.lastIndexOf("/") + 1)); ajax.put("originalFilename", file.getOriginalFilename()); return ajax; } } }

五、第五步

/** * 文件上传接口 */ @PostMapping("/uploadOss") public AjaxResult uploadOss(MultipartFile file) throws Exception { try { return ossService.uploadFile(file); } catch (Exception e) { return AjaxResult.error(e.getMessage()); } }

六、第六步

前端若依框架组件调用,文件或者图片上传

预览

七、第七步

前端页面展示效果,预览

文件上传

标签:

阿里云oss文件上传springboot若依java由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“阿里云oss文件上传springboot若依java