V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
NASK
V2EX  ›  程序员

如何优雅的把项目 resource 目录配置文件迁移到 minio?

  •  
  •   NASK · 9 小时 39 分钟前 · 553 次点击

    SpringBoot 项目,之前有有一些 zip 包、excel 模板文件保存在了 reasource 目录,现在打算把这这种配置文件迁移到 minio 进行管理。但是项目中有不少方法,传入的参数中用的是 resource 目录的文件路径,这些 resource 路径保存在一个常量类中。万能的 v 友,有什么优雅的方式改造原有的方法吗?

    8 条回复    2025-01-22 16:45:48 +08:00
    ArthurKing
        1
    ArthurKing  
       9 小时 13 分钟前   ❤️ 1
    文件上传到 minio ,本地用 s3fs 挂载 minio 相应目录
    xenoblade
        2
    xenoblade  
       9 小时 13 分钟前   ❤️ 1
    1. 使用 UrlResource:UrlResource 可以直接下载并加载 http 资源,但是应该是没有缓存能力的,可以扩展 UrlResource 来实现,比对 md5 来判断是否需要下载,从而提升应用的启动速度;
    2. 启动脚本下载资源:在启动脚本中实现资源的下载,将资源文件下载到固定的路径后再启动程序,这么做的好处是不需要修改代码,继续使用 ClassPathResource ,同样需要比对 md5 来判断是否需要下载,从而提升应用的启动速度;
    ChengHaha
        3
    ChengHaha  
       9 小时 3 分钟前
    直接建一个本地目录不是更快,这种文件一般也不会去更新吧
    angryfish
        4
    angryfish  
       8 小时 55 分钟前
    移到 mino 的目的是为啥呢?
    XXWHCA
        5
    XXWHCA  
       8 小时 52 分钟前
    GLFS 是不是一个解决方案,minio 有点和项目脱节了,已经成了两个服务
    ErnestSu
        6
    ErnestSu  
       8 小时 51 分钟前   ❤️ 1
    注意⚠️信创不给用
    lucasdev
        7
    lucasdev  
       8 小时 48 分钟前
    和楼上说的差不多。

    1. 直接使用 s3fs 挂载到本地,需要考虑每次文件访问可能的网络开销。
    2. 在应用启动时下载到本地,并通过 S3 Event Notifications/定时任务 来监听文件变更,或者提供 API 用于在文件修改后刷新本地文件。
    3. 将读资源的代码封装一下,将原来的从本地读改成从 S3 读,并引入缓存和失效机制。
    NASK
        8
    NASK  
    OP
       7 小时 14 分钟前
    @ErnestSu #6 一句话让我放弃 minio
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2393 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 16:00 · PVG 00:00 · LAX 08:00 · JFK 11:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.