dromara / x-file-storage

一行代码将文件存储到 本地、FTP、SFTP、WebDAV、谷歌云存储、阿里云OSS、华为云OBS、七牛云Kodo、腾讯云COS、百度云 BOS、又拍云USS、MinIO、 AWS S3、FastDFS、 Azure Blob Storage、金山云 KS3、美团云 MSS、京东云 OSS、天翼云 OOS、移动云 EOS、沃云 OSS、 网易数帆 NOS、Ucloud US3、青云 QingStor、平安云 OBS、首云 OSS、IBM COS、其它兼容 S3 协议的平台。后续即将支持 Samba、NFS
https://x-file-storage.xuyanwu.cn/
Apache License 2.0
1.77k stars 266 forks source link

solon 下使用 minio 报错 #297

Open transtone opened 2 months ago

transtone commented 2 months ago

按照文档配置了 solon 环境,但在上传文件的时候报错。

solon-2.9.3

    at org.noear.solon.SolonApp.tryHandle(SolonApp.java:467)
    at org.noear.solon.boot.smarthttp.http.SmHttpContextHandler.handleDo(SmHttpContextHandler.java:125)
    at org.noear.solon.boot.smarthttp.http.SmHttpContextHandler.handle0(SmHttpContextHandler.java:103)
    at org.noear.solon.boot.smarthttp.http.SmHttpContextHandler.lambda$handle$0(SmHttpContextHandler.java:88)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:775)

Caused by: java.lang.invoke.LambdaConversionException:
 Invalid receiver type class org.noear.solon.core.handle.UploadedFile; 
not a subtype of implementation receiver type class org.noear.solon.core.handle.DownloadedFile

    at java.lang.invoke.AbstractValidatingLambdaMetafactory.validateMetafactoryArgs(AbstractValidatingLambdaMetafactory.java:240)
    at java.lang.invoke.LambdaMetafactory.metafactory(LambdaMetafactory.java:303)
    at java.lang.invoke.CallSite.makeSite(CallSite.java:302)
    ... 52 more
{
  "code": 500,
  "msg": "服务端运行出错",
  "result": "call site initialization exception"
}

用 minioClient 测试了地址和 bucket,是正常可以访问的。

测试项目地址:https://gitee.com/gridsoft/x-file-storage-solon-test

noear commented 2 months ago

找到原因了。 2.8.5 时,把 UploadedFile 的基类,改成了 FileBase 。。。我请作者升级 solon 到 2.8.6

noear commented 2 months ago

谢谢你的反馈!

1171736840 commented 2 months ago

目前可以参考 文件适配器 对 UploadedFile 手动适配一下就可以了

noear commented 2 months ago

就是用 FileWrapper 包装,替代下它。

transtone commented 2 months ago

目前可以参考 文件适配器 对 UploadedFile 手动适配一下就可以了

多谢回复。

本地编译了一个升级了依赖的版本 2.2.1-1,放到了 ~/.m2/ 下。机智如我~~