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

相关推荐
灵机一物几秒前
2026算力推荐进入专业化阶段:超互联品牌如何构建企业AI选型能力矩阵
服务器·人工智能·决策树·云平台
淘源码A2 分钟前
多院区集团化云PACS系统源码,原生兼容国产软硬件环境
java·云计算·源码·saas·pacs·医学影像系统
裤兜里有钱5 分钟前
关于Xshell连接虚拟机Linux失败的主要原因
linux·运维·服务器
何中应12 分钟前
主流 OpenJDK 发行版下载安装
java·oracle·jdk·openjdk
daad77714 分钟前
记录vscode连接matlab启动环境搭建
java·vscode·matlab
IT_陈寒17 分钟前
SpringBoot自动配置的坑,我的Bean怎么不生效?
前端·人工智能·后端
2501_9259633823 分钟前
Hi3516 + WS73 SDIO Wi-Fi 适配笔记
java·开发语言
辞旧 lekkk26 分钟前
CMake工程指南(一)
linux·运维·服务器·开发语言·qt·学习·萌新
迷途呀29 分钟前
新闻头条后端:新闻缓存模块
前端·redis·python·缓存·fastapi
凤年徐31 分钟前
哪些远程办公软件支持多屏协作?2026年7月远程办公工具横评:UU远程成首选,多屏协作、大文件传输等实用功能拉满
服务器