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

相关推荐
组合缺一2 小时前
Snack JSONPath 项目架构分析
java·架构·json·jsonpath·rfc 9535
人道领域2 小时前
2026年Java后端热点科普:Java 26新特性+Java 21落地实战,解锁后端开发新范式
java·开发语言
这辈子谁会真的心疼你2 小时前
如何修改照片的拍摄信息?三个实用方案分享
java·python·数码相机
醉挽清风7832 小时前
服务器安装neo4j和jupyter
服务器·jupyter·neo4j
周末也要写八哥2 小时前
Java面试时,线程为什么不安全?
java·开发语言·面试
Cyber4K2 小时前
【Nginx专项】基础入门篇-日志格式、日志分类、日志缓存及日志轮转
运维·服务器·nginx·缓存
小李子呢02112 小时前
前端八股CSS(3)---水平垂直居中的实现方法
前端·css·css3
M ? A2 小时前
Vue3 转 React:组件透传 Attributes 与 useAttrs 使用详解|VuReact 实战
前端·javascript·vue.js·经验分享·react.js·开源·vureact
火山引擎开发者社区2 小时前
方舟 Coding Plan 支持 Embedding 模型,让 AI Agent “找得更准、记得更久”
前端·javascript·人工智能
Albert Edison2 小时前
【RabbitMQ】七种工作模式
java·开发语言·分布式·rabbitmq