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

相关推荐
大卡片8 分钟前
IO模型与并发服务器设计
运维·服务器·网络
莎士比亚的文学花园24 分钟前
Linux驱动开发(1)——系统移植
linux·运维·服务器
PH = 740 分钟前
OverlayFS联合文件系统使用示例
java·linux·服务器
AC赳赳老秦1 小时前
OpenClaw进阶技巧:批量修改文件内容、替换关键词,解放双手
java·linux·人工智能·python·算法·测试用例·openclaw
ejinxian1 小时前
Rust GUI框架Azul与Electron、WebView2
前端·javascript·electron
Java小白笔记1 小时前
OpenClaw 实战方法论
java·开发语言·人工智能·ai·全文检索·ai编程·ai写作
志栋智能1 小时前
超自动化巡检:解锁运维数据的深层价值
运维·服务器·数据库·自动化
IT_陈寒1 小时前
Vue的v-for里用index当key,我被自己坑惨了
前端·人工智能·后端
呱牛do it2 小时前
企业级门户网站设计与实现:基于SpringBoot + Vue3的全栈解决方案(Day 5)
java·vue
练习时长一年2 小时前
Spring配置类的演化
java·spring boot·spring