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

相关推荐
Dragon Wu1 分钟前
React Native KeyChain完整封装
前端·javascript·react native·react.js·前端框架
漏刻有时4 分钟前
宝塔服务器被篡改 Nginx Location 配置的安全风险剖析与修复指南(流量劫持、服务器资源消耗、站点功能异常、溯源困难)
服务器·nginx·安全
晚霞的不甘4 分钟前
Flutter for OpenHarmony 布局探秘:从理论到实战构建交互式组件讲解应用
开发语言·前端·flutter·正则表达式·前端框架·firefox·鸿蒙
打工的小王4 分钟前
Spring Boot(二)模版引擎
java·spring boot·后端
茶本无香8 分钟前
设计模式之七—装饰模式(Decorator Pattern)
java·设计模式·装饰器模式
运筹vivo@8 分钟前
BUUCTF: [极客大挑战 2019]BabySQL
前端·web安全·php·ctf
rannn_1119 分钟前
【Javaweb学习|Day11】SpringBoot原理|配置优先级、Bean的管理、原理及源码分析
java·spring boot·后端·学习·javaweb
晚风吹长发9 分钟前
初步了解Linux中的信号保存和简单使用
linux·运维·服务器·数据结构·后端·算法
马猴烧酒.11 分钟前
智能协图云图库学习笔记day5
java·jvm·spring boot·笔记·学习·mvc
2501_9335130412 分钟前
Java后端开发者的AGI时代学习与职业路径策略
java·学习·agi