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

相关推荐
八月ouc1 天前
每日小知识点:10.14 webpack 有几种文件指纹
前端·webpack
苏琢玉1 天前
从 Hexo 到 Astro:重构我的个人博客
前端·hexo
云泽8081 天前
C/C++内存管理详解:从基础原理到自定义内存池原理
java·c语言·c++
Dovis(誓平步青云)1 天前
《简易制作 Linux Shell:详细分析原理、设计与实践》
linux·运维·服务器
街尾杂货店&1 天前
webpack - 单独打包指定JS文件(因为不确定打出的前端包所访问的后端IP,需要对项目中IP配置文件单独拿出来,方便运维部署的时候对IP做修改)
前端·javascript·webpack
月光技术杂谈1 天前
用Deepseek 实现一个基于web的扣图应用
前端·javascript·html5·ccs·tensorflow.js·canvas api
Code小翊1 天前
堆的基础操作,C语言示例
java·数据结构·算法
wheeldown1 天前
【Linux】Linux 进程通信:System V 共享内存(最快方案)C++ 封装实战 + 通信案例,4 类经典 Bug 快速修复
linux·运维·服务器·开发语言
高山上有一只小老虎1 天前
idea中设置快捷键风格
java·ide·intellij-idea
JH30731 天前
IDEA自带的Maven安装位置
java·maven·intellij-idea