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

相关推荐
難釋懷7 分钟前
Shell脚本-for循环应用案例
linux·运维·服务器·bash
小鸡脚来咯14 分钟前
SpringBoot 常用注解大全
java
何双新20 分钟前
L3-3、从单轮到链式任务:设计协作型 Prompt 系统
服务器·搜索引擎·prompt
老兵发新帖25 分钟前
pnpm常见报错解决办法
前端
风铃儿~30 分钟前
Java面试高频问题(26-28)
java·算法·面试
Sonetto199933 分钟前
Nginx 反向代理,啥是“反向代理“啊,为啥叫“反向“代理?而不叫“正向”代理?它能干哈?
运维·前端·nginx
沐土Arvin33 分钟前
理解npm的工作原理:优化你的项目依赖管理流程
开发语言·前端·javascript·设计模式·npm·node.js
IT瘾君37 分钟前
Java基础:认识注解,模拟junit框架
java·开发语言·junit
风象南38 分钟前
SpringBoot中3种内容协商策略实现
java·spring boot·后端
达斯维达的大眼睛39 分钟前
如何在Linux用libevent写一个聊天服务器
linux·运维·服务器·网络