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

如何向Minio上传byte[]?调用PutObjectAsync遇参数错误

解决Minio上传byte[]的报错问题

你的代码尝试直接上传byte[]到Minio,但执行时报错:

One of FileName or ObjectStreamData must be set.

问题出在Minio SDK对数据源的要求上,错误提示里的ObjectStreamData是过时命名,当前版本SDK对应的正确方法是WithStream。你不需要依赖物理文件,只需将byte[]包装成内存流即可,同时要补充指定数据长度。

修正后的代码如下:

public async Task Put(byte[] data)
{
    using var stream = new MemoryStream(data);
    var args = new PutObjectArgs()
        .WithBucket("buckethead")
        .WithObject(Guid.NewGuid().ToString())
        .WithStream(stream)
        .WithObjectSize(data.Length)
        .WithContentType("application/vnd.ms-excel");
        
    await _client.PutObjectAsync(args);
}

注意两个细节:

  • 原代码中Guid.NewGuid.ToString()少了方法调用的括号,正确写法是Guid.NewGuid().ToString()
  • 必须通过WithObjectSize指定字节数组的长度,SDK需要这个参数来正确处理上传流

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 05:40:31