MinIO Object name contains unsupported characters

源码

java 复制代码
protected void validateObjectName(String name) {
    // 调用 validateNotEmptyString 方法,确保对象名不为空字符串
    validateNotEmptyString(name, "object name");

    // 使用 "/" 分割对象名,检查每个分段
    for (String token : name.split("/")) {
        // 如果分段为 "." 或 "..",抛出 IllegalArgumentException
        if (token.equals(".") || token.equals("..")) {
            throw new IllegalArgumentException(
                "object name with '.' or '..' path segment is not supported");
        }
    }
}

问题原因使用了 File.separator,它在不同的操作系统上会生成不同的分隔符(例如,在 Windows 上是 \,在 Linux 上是 /)。MinIO 使用的是基于 URL 的路径,因此需要使用 / 作为分隔符。

你可以将代码中的 File.separator 替换为 /,以确保路径格式正确。修改后的代码如下:

java 复制代码
filename = "chat"
        + "/" + userId
        + "/" + "photo"
        + "/" + IdUtil.fastSimpleUUID() + "." + FileUtil.extName(file.getOriginalFilename());

这样可以确保生成的文件路径在 MinIO 中是有效的。

相关推荐
摇滚侠12 小时前
SpringMVC 入门到实战 简介和入门案例 01-13
java·后端·spring·intellij-idea
未若君雅裁12 小时前
JVM 垃圾回收器全景与G1深度解析
java·开发语言·jvm
霸道流氓气质12 小时前
Java 大数据量异步处理方案:线程池 vs 消息队列
java·开发语言
devilnumber12 小时前
想真正吃透 + 灵活运用 Java 代理模式
java·开发语言·代理模式
蝎子莱莱爱打怪12 小时前
自用推荐|XTerminal:我心中 SSH 客户端的终极形态
java·后端·程序员
AIGS00112 小时前
向量空间JBoltAI:重塑工业智能的四大支柱
java·人工智能·ai大模型应用
刘科领12 小时前
修改jdk 第一步: 仓库以及构建(jdk17)
java·开发语言
道友可好12 小时前
用 Linter 驾驭 AI:机械化执行的艺术
前端·人工智能·后端
C+-C资深大佬12 小时前
C++ 中的 constexpr与 const区
java·开发语言·c++
8Qi813 小时前
LeetCode 4:寻找两个正序数组的中位数 —— 二分查找法
java·算法·leetcode·职场和发展·二分查找