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

相关推荐
const_qiu19 分钟前
第四章 05:4.5 Multi-Agent —— 五个专职智能体协作
java·人工智能
A小码哥26 分钟前
大模型成本怎么降,5 个动作先做前两个
java·前端·spring
鬼手点金30 分钟前
构建有效 Agent 的核心原则
java·人工智能·git·学习·自动化
神魔皆以血嗜35 分钟前
Java 实现简单状态机(订单状态流转)
java·后端
PHP是世界上最好的语言38 分钟前
ComPDF预览本地正常,部署后白屏:检查资源、路径和许可
前端
kiros_wang40 分钟前
项目分包方案:模块拆分、跨模块组件与方法引用规范
前端
PedroQue9942 分钟前
unix-utils v0.2.0 发布:modal 全端统一,自绘窗口解决输入框难题
前端·uni-app
Csvn43 分钟前
网络优化
前端
随性而行36044 分钟前
企业微信 API 如何实现业务消息自动通知?接口应用场景解析
java·人工智能·后端·微信·机器人·企业微信
代码猎人1 小时前
前端怎么跟进生态新技术
前端