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

相关推荐
Linux运维技术栈8 分钟前
jumpserver堡垒机从 CentOS 7 迁移至 Rocky Linux 9 实战指南
linux·运维·服务器·centos·rocky
一 乐21 分钟前
健身房预约|基于java+ vue健身房预约小程序系统(源码+数据库+文档)
java·vue.js·spring boot·小程序·论文·毕设·健身房预约小程序
开开心心就好25 分钟前
轻松加密文件生成exe,无需原程序解密
linux·运维·服务器·windows·pdf·harmonyos·1024程序员节
扶苏100228 分钟前
详解Vue2和Vue3的变化
前端·javascript·vue.js
wfj12634 分钟前
服务器部署,用 nginx 部署后页面刷新 404 问题,宝塔面板修改(修改 nginx.conf 配置文件)
运维·服务器·nginx
Hello eveybody34 分钟前
如何将十进制转为二进制、八进制、十六进制?
前端·javascript·数据库
望舒51336 分钟前
代码随想录day32,动态规划part1
java·算法·leetcode·动态规划
技术传感器41 分钟前
解剖“数字孪生“:语义层定义世界,动力层驱动世界
android·运维·服务器
麻辣香蝈蝈43 分钟前
【入门】职场如何沟通以及开发一个功能
java
he___H44 分钟前
jvm41-47回
java·开发语言·jvm