栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

【.net 6.0, .net core minio文件上传下载】

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【.net 6.0, .net core minio文件上传下载】

这里写自定义目录标题
  • 欢迎使用Markdown编辑器
    • 文件上传
    • 文件下载

欢迎使用Markdown编辑器 文件上传

昨晚IFormFile转MemoryStream转不过来,上传始终为0kb。当时懵了没解决掉。搜了搜流的转换,IFormFile的 OpenReadStream我也没走通。今天到公司看了一下,流没倒带,seek回begin就好了。在公司测试是.net core3.1,6.0试完了,也是一样的问题。

        [HttpPost,Route("uploadFile")]
        public async Task UploadFile([FromForm] MinIOVO vo)
        {
            MinioClient minioClient = new MinioClient("ip:9000", "minioadmin", "minioadmin");
            bool isExsit = await minioClient.BucketExistsAsync("performance");
            if (!isExsit) return null;
            using (MemoryStream stream = new MemoryStream())
            {
                await vo.File.CopyToAsync(stream);
                stream.Seek(0, SeekOrigin.Begin);//看这的指针是否在0
                await minioClient.PutObjectAsync("performance",
                   vo.File.FileName,
                    stream,
                    stream.Length,
                   vo.File.ContentType);
                Console.Out.WriteLine("island.jpg is uploaded successfully");
            }
            return Ok("ok fine");
        }
 

实体类

    public class MinIOVO
    {
        public IFormFile File { get; set; }
    }
文件下载
        [HttpPost, Route("putFileTest")]
        public async Task PutFileTest([FromForm] FileVO vo)//不要在意这个参数,我给上传用的
        {

            try
            {
                var minioClient = new MinioClient("ip:9000",
                                       "minioadmin",//账号
                                       "minioadmin"//密码
                                 );

                bool isExsitBucket = await _minioClient.BucketExistsAsync("yeyu");
                if (!isExsitBucket) return null;
                MemoryStream stream1 = new MemoryStream();
                await minioClient.StatObjectAsync("yeyu", "1638195041(1).jpg");

                // Get input stream to have content of 'my-objectname' from 'my-bucketname'
                await minioClient.GetObjectAsync("yeyu", "1638195041(1).jpg",
                                                 (stream) =>
                                                 {
                                                     stream.CopyTo(stream1);
                                                 });
                stream1.Seek(0, SeekOrigin.Begin);//我建议你倒带
                return File(stream1, "image/jpeg");//这里文件类型建议存下来,方便下载时直接取用
            }
            catch (MinioException e)
            {
                Console.Out.WriteLine("Error occurred: " + e);
            }
            return null;
        }
 

minio官方文档

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号