OssBuilder与MinioTemplate规则匹配(新的问题)

Blade 未结 2 1056
dp9212
dp9212 剑圣 2020-12-17 18:43

一、该问题的重现步骤是什么?

首先,代码已参考上个帖子改完(https://sns.bladex.cn/q-3824.html),也实现了自定义规则。

image.png


上个帖子一直不生效的问题,是因为我是用postman调用的我自己写的接口,用的是 MinioTemplate,web上测试使用的是OssBuilder(自定义规则生效)

image.png

image.png



二、你期待的结果是什么?实际看到的又是什么?

    使用 MinioTemplate 的时候怎么使自定义规则生效?


三、你正在使用的是什么产品,什么版本?在什么操作系统上?

    windows 10 , bladex 2.7.0

四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

2条回答
  • 2020-12-17 18:47

    使用 MinioTemplate 上传返回的路径 ( 错误的,postman调用的上面截图中的自写接口)

    image.png


    使用 ossBuilder.template().putFile(....)上传返回的路径(正确的,web测试)

    image.png

    0 讨论(0)
  • 2020-12-17 19:15

    其实配置和上个帖子没有任何改变,MinioTemplate主要是靠自定义OssRule的bean,相关逻辑,你可以去看下blade-starter-oss-minio就知道他的实现逻辑,上个帖子其实已经说的很明白了,希望以后遇到问题可以先调试调试,理清逻辑

    image.png

    image.png

    image.png

    image.png

    image.png

    作者追问:2020-12-17 22:51

    不好意思,怪我前面没有表诉清楚,在bladex核心项目的blade-resouce子工程下使用OssBuilder与MinioTemplate上传文件路径都是对的;

    我困惑的是在bladex-biz项目中使用MinioTemplate上传文件后路径还是默认的;

    我一直以为在blade-resouce工程中配置了自定义规则后,blade-biz工程注入MinioTemplate后也能拿到自定义配置,结果拿不到,我在blade-biz工程中重新配置规则后已经可以了。

    每个工程独立配置也好,方便文件隔离,就是公用的路径麻烦点需要每个biz工程都重复写一次。

    每个OssBuilder与MinioTemplateMinioTemplate

    回答: 2020-12-18 11:03

    如果你只是要在biz使用MinioTemplate,那么bladex的resource是一个代码都不需要改的。只需要biz新增一个rule并且将它实例化就行。

    当然你想做成独立还是通用都是没问题的,想独立,那么就在每个服务自定义不同的rule,毕竟会有不同场景要不同上传目录的需求。想通用,那么把这个rule写到blade-resource-api这个包内,需要用到的引用这个依赖就可以配置一次,全系通用了。

    只需要理解整个运行逻辑,那么问题就很好解决,既然已经到需要自己拓展的时候,就顺带把实现代码都看一遍,搞懂了后续拓展就没阻碍了


    0 讨论(1)
提交回复