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

相关推荐
PBitW13 小时前
直接让GPT每日训练我!!!😕😕😕
前端·javascript·面试
爱勇宝13 小时前
我给自己做了一个新标签页:不登录、不打扰、打开就能用
前端·html·浏览器
用户2986985301413 小时前
Java 实现 Word 文档文本查找与高亮标注
java·后端
Ausra无忧14 小时前
记录在公司把单服务器升级成多服务器架构流程
前端·后端·架构
宇宙之一粟14 小时前
乐企版式文件生成平台
java·后端·python
极客密码14 小时前
来看看我用Codex两周时间vibe coding的这款轻量级的剪贴板管理应用,win/mac系统均可用
前端·ai编程·vibecoding
前端双越老师14 小时前
Agent 实战: 智语 + baoyu-skills 自动发布文章到公众号
前端·agent·全栈
hunterandroid14 小时前
Jetpack Compose 入门:用声明式 UI 写 Android 页面
前端
以和为贵14 小时前
前端手写 RAG 踩坑实录:四个让检索"翻车"的坑
前端·人工智能·面试
用户21366100357214 小时前
Redux异步方案与React性能优化Hooks
前端