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

相关推荐
Qrun21 小时前
Windows11安装nvm管理node多版本
前端·vscode·react.js·ajax·npm·html5
中国lanwp21 小时前
全局 npm config 与多环境配置
前端·npm·node.js
JELEE.1 天前
Django登录注册完整代码(图片、邮箱验证、加密)
前端·javascript·后端·python·django·bootstrap·jquery
TeleostNaCl1 天前
解决 Chrome 无法访问网页但无痕模式下可以访问该网页 的问题
前端·网络·chrome·windows·经验分享
学到头秃的suhian1 天前
Maven
java·maven
小坏讲微服务1 天前
Docker-compose 搭建Maven私服部署
java·spring boot·后端·docker·微服务·容器·maven
chxii1 天前
Maven 详解(下)
java·maven
inferno1 天前
Maven基础(二)
java·开发语言·maven
杨武博1 天前
关于maven中pom依赖冲突问题记录
java·maven
前端大卫1 天前
为什么 React 中的 key 不能用索引?
前端