You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决上传文件到MinIO时出现TypeError: metaData should be of type "object"报错

问题原因

你调用MinIO Node.js SDK的fPutObject方法时传参不符合规范,该方法的第四个参数要求传入元数据对象,你直接传入了字符串类型的"application/octet-stream",因此触发类型校验错误。

方法参数说明

fPutObject标准传参顺序如下:

  • 第1位:目标存储桶名称
  • 第2位:文件上传到MinIO后的对象名称
  • 第3位:待上传的本地文件路径
  • 第4位(可选):元数据对象,文件的Content-Type、自定义头信息都需要写在这个对象里
  • 第5位:操作完成后的回调函数
修正后的代码
var minioClient = new minio.Client({
  endPoint: 'play.min.io',
  port: 9000,
  useSSL: true,
  accessKey: 'myaccesskey',
  secretKey: 'mysecretkey'
});

app.post("/uploadfile", multer({dest: "./uploads/"}).single("files"), function(request, response) {
    // 把第四个参数改成元数据对象,Content-Type作为对象属性传入
    minioClient.fPutObject("berliana", request.file.originalname, request.file.path, {'Content-Type': 'application/octet-stream'}, function(error, etag) {
        if(error) {
            return console.log(error);
        }
        response.send(request.file);
    });
});

如果你不需要指定任何元信息,也可以直接传空对象{}作为第四个参数。

内容的提问来源于stack exchange,提问作者berlianafd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 18:45:05