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

相关推荐
KIDAKN21 小时前
RabbitMQ 可靠传输性(包括消息确认, 持久性和发送方确认)
java·rabbitmq·java-rabbitmq
fantasy_arch21 小时前
SVT-AV1编码器中实现WPP依赖管理核心调度
java·前端·av1
Ophelia(秃头版21 小时前
经典设计模式:单例模式、工厂模式
java·开发语言·单例模式
Chan1621 小时前
消息推送的三种常见方式:轮询、SSE、WebSocket
java·网络·websocket·网络协议·http·sse
香香甜甜的辣椒炒肉21 小时前
vue(7)-单页应用程序&路由
前端·javascript·vue.js
高级测试工程师欧阳21 小时前
HTML 表格基础
前端
1candobetter1 天前
软考中级习题与解答——第三章_操作系统(1)
linux·运维·服务器
不买Huracan不改名1 天前
安装Codex(需要用npm)
前端·npm·node.js
Dorcas_FE1 天前
axios请求缓存与重复拦截:“相同请求未完成时,不发起新请求”
前端·spring·缓存