ruoyi-vue-plus项目 minio外网访问配置

简介

无需改动前端代码,只需加一个自定义域名即可。java端代码是为了解决数据库存得地址不一致问题

如下:

1.管理页面设置

2.nginx配置

复制代码
location ^~ /golf-ai {
    proxy_pass http://192.168.1.98:9000;

    proxy_http_version 1.1;
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Connection "";

    proxy_buffering off;
    proxy_request_buffering off;
    client_max_body_size 0;

    add_header X-Cache $upstream_cache_status;
    add_header Cache-Control no-cache;
}

3. java后端改代码

复制代码
  // 提取上传结果中的 ETag,并构建一个自定义的 UploadResult 对象
            return UploadResult.builder().url(getUrl() + StringUtils.SLASH + key).filename(key).eTag(eTag).build();

改为

            // 提取上传结果中的 ETag,并构建一个自定义的 UploadResult 对象
            return UploadResult.builder().url(getStorageUrl() + StringUtils.SLASH + key).filename(key).eTag(eTag).build();
  • SysOssServiceImpl.java文件,修改1

    复制代码
      @Override
      public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
          if (isValid) {
              // 做一些业务上的校验,判断是否需要校验
          }
          List<SysOss> list = baseMapper.selectByIds(ids);
          for (SysOss sysOss : list) {
              OssClient storage = OssFactory.instance(sysOss.getService());
              storage.delete(sysOss.getUrl());
          }
          return baseMapper.deleteByIds(ids) > 0;
      }

    改为

    复制代码
      @Override
      public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
          if (isValid) {
              // 做一些业务上的校验,判断是否需要校验
          }
          List<SysOss> list = baseMapper.selectByIds(ids);
          for (SysOss sysOss : list) {
              OssClient storage = OssFactory.instance(sysOss.getService());
              storage.delete(sysOss.getFileName());
          }
          return baseMapper.deleteByIds(ids) > 0;
      }
  • SysOssServiceImpl.java文件,修改2

    复制代码
      /**
       * 桶类型为 private 的URL 修改为临时URL时长为120s
       *
       * @param oss OSS对象
       * @return oss 匹配Url的OSS对象
       */
      private SysOssVo matchingUrl(SysOssVo oss) {
          OssClient storage = OssFactory.instance(oss.getService());
          // 仅修改桶类型为 private 的URL,临时URL时长为120s
          if (AccessPolicyType.PRIVATE == storage.getAccessPolicy()) {
              oss.setUrl(storage.createPresignedGetUrl(oss.getFileName(), Duration.ofSeconds(120)));
          }
          return oss;
      }

    改为

    复制代码
      /**
       * 桶类型为 private 的URL 修改为临时URL时长为120s
       *
       * @param oss OSS对象
       * @return oss 匹配Url的OSS对象
       */
      private SysOssVo matchingUrl(SysOssVo oss) {
          OssClient storage = OssFactory.instance(oss.getService());
          // 仅修改桶类型为 private 的URL,临时URL时长为120s
          if (AccessPolicyType.PRIVATE == storage.getAccessPolicy()) {
              oss.setUrl(storage.createPresignedGetUrl(oss.getFileName(), Duration.ofSeconds(120)));
          } else {
              oss.setUrl(storage.getUrl() + StringUtils.SLASH + oss.getFileName());
          }
          return oss;
      }
相关推荐
2501_933923253 分钟前
SpringCloud组件:Eureka服务注册与发现
java·开发语言·后端·spring cloud·eureka
Wang's Blog5 分钟前
Java 中间件之 RabbitMQ 快速入门: SpringAMQP 消息转换器
java·中间件·java-rabbitmq
Re_zero31 分钟前
一次 SSE 断流排查:PrintWriter 吞掉了我的 IOException
java·后端
我是人✓1 小时前
Java核心语法:作用域、循环与大数值处理
java·开发语言·后端
夜之眷属1 小时前
PriorityQueue:for-each 遍历和 poll 取出,顺序一样吗?
java·服务器·数据结构·后端·算法
蜗牛互联网2 小时前
Java标准HTTP调用多模态模型的票据抽取前置校验
java·人工智能·python·http
工具派2 小时前
Agent 不是玄学:用 Java 状态机思维理解 LangGraph
java·人工智能·python
十年Java程序媛2 小时前
String / StringBuilder / StringBuffer|别再乱用字符串拼接,底层原理一次讲透
java·spring boot·后端
傲世仙尊2 小时前
类和对象中-构造函数与析构函数把初始化清理自动化
java·运维·自动化
她的男孩2 小时前
权限通了、列表有数,一点分页就炸Forge Admin 用 COUNT(1) 扛住复杂待办
java·spring boot·mybatis