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 中是有效的。

相关推荐
喝咖啡的女孩6 分钟前
React 合成事件系统
前端
从文处安19 分钟前
「九九八十一难」组合式函数到底有什么用?
前端·vue.js
用户59625857360632 分钟前
戴上AI眼镜逛花市——感受不一样的体验
前端
yuki_uix36 分钟前
Props、Context、EventBus、状态管理:组件通信方案选择指南
前端·javascript·react.js
老板我改不动了37 分钟前
前端面试复习指南【代码演示多多版】之——HTML
前端
panshihao39 分钟前
Mac 环境下通过 SSH 操作服务器,完成前端静态资源备份与更新(全程实操无坑)
前端
日月云棠1 小时前
各版本JDK对比:JDK 25 特性详解
java
hulkie1 小时前
从 AI 对话应用理解 SSE 流式传输:一项 "老技术" 的新生
前端·人工智能
dobym1 小时前
里程碑五:Elpis框架npm包抽象封装并发布
前端
全栈老石1 小时前
手写无限画布4 —— 从视觉图元到元数据对象
前端·javascript·canvas