前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Harry技术添加存储(minio、aliyun oss)、短信sms(aliyun、模拟)、邮件发送等功能

Harry技术添加存储(minio、aliyun oss)、短信sms(aliyun、模拟)、邮件发送等功能

作者头像
Harry技术
发布2025-01-13 16:10:25
发布2025-01-13 16:10:25
6200
代码可运行
举报
文章被收录于专栏:Spring Boot学习之路
运行总次数:0
代码可运行

Harry技术添加存储(minio、aliyun oss)、短信sms(aliyun、模拟)、邮件发送等功能

基于SpringBoot3+Vue3前后端分离的Java快速开发框架 项目简介:基于 JDK 17、Spring Boot 3、Spring Security 6、JWT、Redis、Mybatis-Plus、Knife4j等构建后端,基于Vue 3、Element-Plus 、TypeScript等构建前端的分离单体权限管理系统。

项目地址: 后端: gitee: https://gitee.com/harry-tech/harry.git gitcode: https://gitcode.com/harry-tech/harry.git 前端: gitee: https://gitee.com/harry-tech/harry-vue.git https://gitcode.com/harry-tech/harry-vue.git

觉着有帮助,给个Star再走呗 ~~~~

公众号搜“Harry技术”,关注我,带你看不一样的人间烟火!

更新内容

端口修改

之前后端服务的启动端口设置为9000,而现在将其修改为9999。为什么会做出这样的修改呢?这主要是由于在进行minio整合工作的时候,发现后端原本使用的9000端口与minio存储服务的端口产生了冲突。在这种情况下,为了确保整个项目的顺利运行(也方便大家在整合minio做出不必要的麻烦),经过权衡,只能做出调整,让出原本使用的端口,将后端服务的启动端口修改为9999

  • 后端修改
代码语言:javascript
代码运行次数:0
复制
server:
  port: 9999
  • 前端修改

image-20250110232547591

注意:最近总是有小伙伴在运行项目的时候报错,首先,确保本地安装了redis、mysql等,其次查看一下前端.env.development文件中 Mock 服务是否为false状态,当设置为false时,才会去加载后台接口。

代码语言:javascript
代码运行次数:0
复制
# 是否启用 Mock 服务
VITE_MOCK_DEV_SERVER = false

添加存储(minio、aliyun oss)

image-20250110233524780

有关minio的安装,这里就不过多说了,可以参考《Windows下Minio的安装以及基本使用》、《Spring Boot 3 整合 minio 实现文件存储》这两篇文章带你入门。

minio依赖

代码语言:javascript
代码运行次数:0
复制
  <minio.version>8.5.10</minio.version>

 <!-- MinIO 对象存储 -->
    <dependency>
        <groupId>io.minio</groupId>
        <artifactId>minio</artifactId>
        <version>${minio.version}</version>
    </dependency>

阿里云OSS依赖

代码语言:javascript
代码运行次数:0
复制
<aliyun.oss.version>3.17.4</aliyun.oss.version>

 <dependency>
    <groupId>com.aliyun.oss</groupId>
    <artifactId>aliyun-sdk-oss</artifactId>
    <version>${aliyun.oss.version}</version>
 </dependency>

在项目启动前,先选择你需要的存储服务器,比如你想使用minio作为存储,那么你在yml文件中进行相关的配置,将type设置为minio

代码语言:javascript
代码运行次数:0
复制
# 文件存储配置
oss:
# OSS 类型 (目前支持aliyun、minio)
type:minio
# MinIO 对象存储服务
minio:
    # 服务Endpoint
    endpoint:http://localhost:9090
    # 访问凭据
    access-key:eFbF9rSBtgfqiLGDcPDo
    # 凭据密钥
    secret-key:Sfgc06T1S6zhzVTzCwIFhr6KUs7zqCwOwFkHHez4
    # 存储桶名称
    bucket-name:harry
    # (可选)自定义域名,如果配置了域名,生成的文件URL是域名格式,未配置则URL则是IP格式
    custom-domain:
# 阿里云OSS对象存储服务
aliyun:
    # 服务Endpoint
    endpoint:oss-cn-beijing.aliyuncs.com
    # 访问凭据
    access-key-id:XXX
    # 凭据密钥
    access-key-secret:XXX
    # 存储桶名称
    bucket-name:honghh

短信sms(aliyun、模拟)

这次更新里,我们接入了阿里云的短信服务。比如你在个人中心换个手机号,就得先拿到一个短信验证码。但在咱们本地测试的时候,老发真实短信也太费钱了。所以啊,我特意加了个模拟发送短信的功能,这样在后台就能直接打印出验证码来,你只需要输入这个验证码就能完成验证了。那么,我们应该如何开启模拟功能呢?很简单,只需要将sms.aliyun.enable设置为false就可以了。

代码语言:javascript
代码运行次数:0
复制
sms:
  aliyun:
    enable:false#如果enable为false时 则不发送短信
    accessKeyId:XXX
    accessKeySecret:XXX
    regionId:cn-shanghai
    signName:Harry技术
    templateCodes:
      # 注册(预留)
      register:SMS_xxx
      # 登录(预留)
      login:SMS_xxx
      # 修改密码
      changePassword:SMS_xxx
代码语言:javascript
代码运行次数:0
复制
@Slf4j
@Component
@ConditionalOnProperty(value = "sms.aliyun.enable", havingValue = "false")
public class FakeSmsStrategy implements SmsStrategy {
    @Override
    public SendSmsResponse send(SmsParam smsParam) {
        log.info("FakeSmsStrategy smsParam:{}", JSONUtil.toJsonStr(smsParam));
        String str = "{\"bizId\":\"111111111\",\"code\":\"OK\",\"message\":\"并未真实发送\",\"requestId\":\"111111111\"}";
        return BeanUtil.copyProperties(JSONUtil.parseObj(str), SendSmsResponse.class);
    }
}

邮件发送

这次更新里,我们还引入了邮件发送,如果你没有基础,你可以去学习这篇文章进行入门《 使用Java实现邮件发送功能,邮件发送API JavaMail》,配置也是很简单的。

引入依赖

代码语言:javascript
代码运行次数:0
复制
        <!--   邮件发送     -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>

功能实现

代码语言:javascript
代码运行次数:0
复制
/**
 * @author harry
 * @公众号 Harry技术
 */
public interface MailService {
    /**
     * 发送简单文本邮件
     *
     * @param to      收件人地址
     * @param subject 邮件主题
     * @param text    邮件内容
     */
    void sendMail(String to, String subject, String text) ;

    /**
     * 发送带附件的邮件
     *
     * @param to      收件人地址
     * @param subject 邮件主题
     * @param text    邮件内容
     * @param filePath 附件路径
     */
    void sendMailWithAttachment(String to, String subject, String text, String filePath);

完善个人中心

修改文件内容

新增文件管理、个人中心

总结

本次更新主要包含以下内容:

  1. 端口修改:为避免与Minio存储服务冲突,后端启动端口从9000改为9999。
  2. 添加存储支持:集成Minio和阿里云OSS对象存储服务,详细配置请参考相关文档。
  3. 短信服务:接入阿里云短信服务,并增加模拟发送功能,方便本地测试。
  4. 邮件发送:引入邮件发送功能,支持简单文本邮件和带附件邮件。
  5. 完善个人中心:优化个人中心页面,提升用户体验。

注意事项:

  • 确保本地安装Redis、MySQL等。
  • 检查前端.env.development文件中Mock服务是否设置为false,以加载后台接口。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-01-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Harry技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Harry技术添加存储(minio、aliyun oss)、短信sms(aliyun、模拟)、邮件发送等功能
    • 端口修改
    • 添加存储(minio、aliyun oss)
    • 短信sms(aliyun、模拟)
    • 邮件发送
    • 完善个人中心
    • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档