自定义minio存储文件的路径不生效

Blade 已结 2 2188
dp9212
dp9212 剑圣 2020-12-16 19:07

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

自定义minio存储文件的路径不生效,断点也进不去,我改的位置不对吗?

源码文件路径:org.springblade.resource.builder.oss.OssBuilder

J(C$LBV@ET`8{SL$7@~B%C7.png

C9$H1H@HG@E8IK)9GN%D9%2.png

上图两个都是用的CustomOssRule

image.png

image.png

image.png

image.png

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

    我需要自定义文件存储的路径,因为我们的项目每天的图片量太大,10W张以上,需要更详细的路径分类

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

    windows 10 , bladex 2.7.0,

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


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

2条回答
  •  admin
    admin (最佳回答者)
    2020-12-16 20:57

    除了改红框内的自定义Rule外,还需要定义一个bean覆盖默认的OssRule

    作者追问:2020-12-16 20:57

    image.png

    这样定义对不对?还是没有生效

    作者追问:2020-12-16 20:57

    image.png

    回答: 2020-12-16 20:57

    原版的定义在这个类

    image.png


    如果要覆盖的话,需要自己新建一个config类,写上你自己的类实例化,并且把你的config设置order为最高等级,或者在config类加上注解 @AutoConfigureBefore(OssConfiguration.class) 让他比OssConfiguration更早实例化就可以了


    写好后在OssConfiguration与自定义的Config类打断点,看看程序会走到哪一步,再到后面进行下一步操作

    作者追问:2020-12-16 20:57

    image.png

    image.png

    貌似还是不行,bean初始化的时候走的是我定义的CustomOssRule,OssConfiguration没有执行,但是最终结果并不是我写的路径规则,项目已重新编译

    回答: 2020-12-16 20:57

    到oss类打断点看看Rule的bean是哪个,然后再对putFile方法内的getFileName进行断点调试,一步一步查原因。梳理完整个流程,就问题自然就好解决了

    image.png

    image.png

    作者追问:2020-12-16 20:57

    image.png

    image.png


    下面这个断点,不管是启动项目还是上传文件都进不来,哎,姿势不对么?我上传操作和bladex服务是两台电脑

    image.png

    回答: 2020-12-16 20:57

    我不知道这到底有哪里难的,你是不是自己改过了源码,还改动了其他的地方。整个调用链的断点见下图,可以清楚的看到,全程都是自定义的customRule,并且返回的路径也是自己重新定义的,带了一个test目录。


    image.png

    image.png

    image.png

    image.png

    image.png




    以上为改动断点调试所展现的调用流程,以下为整个改动包含的三处代码,除此之外没有别的了。你再好好看一遍,如果不行就下载原生的bladex,根据我的改动以及断点走一遍看看。把整个流程都理顺了,问题自然就简单了


    image.png

    image.png

    image.png

    作者追问:2020-12-16 20:57

    我找到问题了,我之前写的其实也是对的,只是我用的postman调用的,应该是少了什么参数,网页上测试没问题

    0 讨论(1)
  • 2020-12-16 19:10

    在线等解答

    0 讨论(0)
提交回复