找回密码
 立即注册
查看: 11|回复: 0

SpringBoot3附件文件上传阿里云OSS储存方法教程附带源码

[复制链接]

106

主题

5

精华

110

金币

技术维护QQ:515138

积分
242
发表于 昨天 15:36 | 显示全部楼层 |阅读模式
SpringBoot3附件文件上传阿里云OSS储存方法教程附带源码
C层:
  1. package com.zidiu.controller.admin;
  2. import com.zidiu.constant.MessageConstant;
  3. import com.zidiu.result.Result;
  4. import com.zidiu.utils.AliOssUtil;
  5. import io.swagger.v3.oas.annotations.Operation;
  6. import io.swagger.v3.oas.annotations.tags.Tag;
  7. import lombok.extern.slf4j.Slf4j;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.web.bind.annotation.PostMapping;
  10. import org.springframework.web.bind.annotation.RequestMapping;
  11. import org.springframework.web.bind.annotation.RestController;
  12. import org.springframework.web.multipart.MultipartFile;
  13. import java.io.IOException;
  14. import java.time.LocalDate;
  15. import java.time.format.DateTimeFormatter;
  16. import java.util.UUID;
  17. @RestController
  18. @Slf4j
  19. @Tag(name = "通用接口")
  20. @RequestMapping("/admin/common")
  21. public class CommonController {
  22.     @Autowired
  23.     private AliOssUtil aliOssUtil;
  24.     /**
  25.      * 文件上传
  26.      * @param file
  27.      * @return
  28.      */
  29.     @PostMapping("/upload")
  30.     @Operation(summary = "文件上传", description = "文件上传")
  31.     // 前后端的参数名称必须相同,否则无法接收 file
  32.     public Result<String> upload(MultipartFile file){
  33.         log.info("文件上传:{}",file);
  34.         try {
  35.             //原始文件名
  36.             String originalFilename = file.getOriginalFilename();
  37.             //截取原始文件名的后缀   dfdfdf.png
  38.             String extension = null;
  39.             if (originalFilename != null) {
  40.                 extension = originalFilename.substring(originalFilename.lastIndexOf("."));
  41.             }
  42.             //构造新文件名称
  43.             // 填写Object完整路径,例如202406/1.png。Object完整路径中不能包含Bucket名称。
  44.             //获取当前系统日期的字符串,格式为 yyyy/MM
  45.             String dir = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd"));
  46.             String newFileName = UUID.randomUUID().toString() + extension;
  47.             String objectName = dir + "/" + newFileName;
  48.             //文件的请求路径
  49.             String filePath = aliOssUtil.upload(file.getBytes(), objectName);
  50.             return Result.success(filePath);
  51.         } catch (IOException e) {
  52.             log.error("文件上传失败:{}", e);
  53.         }
  54.         return Result.error(MessageConstant.UPLOAD_FAILED);
  55.     }
  56. }
复制代码
工具类:
游客,如果您要查看本帖隐藏内容请回复

读取阿里云OSS的配置属性:
  1. package com.zidiu.properties;
  2. import lombok.Data;
  3. import org.springframework.boot.context.properties.ConfigurationProperties;
  4. import org.springframework.stereotype.Component;
  5. /**
  6. * 读取阿里云OSS的配置属性
  7. */
  8. @Component
  9. @ConfigurationProperties(prefix = "jinhei.alioss")
  10. @Data
  11. public class AliOssProperties {
  12.     private String endpoint;
  13.     private String accessKeyId;
  14.     private String accessKeySecret;
  15.     private String bucketName;
  16. }
复制代码
config配置自动注入:
  1. package com.zidiu.config;
  2. import com.zidiu.properties.AliOssProperties;
  3. import com.zidiu.utils.AliOssUtil;
  4. import lombok.extern.slf4j.Slf4j;
  5. import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
  6. import org.springframework.context.annotation.Bean;
  7. import org.springframework.context.annotation.Configuration;
  8. /**
  9. * 配置类,用于创建AliOssUtil对象
  10. */
  11. @Configuration
  12. @Slf4j
  13. public class OssConfiguration {
  14.     @Bean
  15.     @ConditionalOnMissingBean // 如果容器中没有这个对象,则创建,保证只有一个
  16.     public AliOssUtil aliOssUtil(AliOssProperties aliOssProperties){
  17.         log.info("开始创建阿里云文件上传工具类对象:{}",aliOssProperties);
  18.         return new AliOssUtil(aliOssProperties.getEndpoint(),
  19.                 aliOssProperties.getAccessKeyId(),
  20.                 aliOssProperties.getAccessKeySecret(),
  21.                 aliOssProperties.getBucketName());
  22.     }
  23. }
复制代码
yml层:
游客,如果您要查看本帖隐藏内容请回复

dev.yml层:
游客,如果您要查看本帖隐藏内容请回复

jinhei-waimai.zip (487.41 KB, 下载次数: 0, 售价: 50 金币)

SpringBoot3+SSM的企业级Java项目实战之外卖小程序



上一篇:SpringBoot3之Redis缓存数据库redis操作和使用指南
下一篇:Redis数据类型和Redis常用命令
网站建设,公众号小程序开发,系统定制,软件App开发,技术维护【联系我们】手机/微信:17817817816 QQ:515138

QQ|Archiver|自丢网 ( 粤ICP备2024252464号-1 )

GMT+8, 2025-12-21 16:54

专注于网站建设,公众号小程序制作,商城小程序,系统定制,软件App开发

【联系我们】手机/微信:17817817816 QQ:515138

快速回复 返回顶部 返回列表