首页 > 其他分享 >Minio .NET 新版API使用

Minio .NET 新版API使用

时间:2024-08-14 09:54:54浏览次数:15  
标签:Minio stream await API bucketName var new NET minioClient

 Minio新版API 有很多改动 网上搜索不到 做个记录。 

  • 创建Client
    • 创建client的方式和以前差别不大
       var minioClient = new MinioClient()
       .WithEndpoint(AppSettings._minio?.EndPoint, (int)(AppSettings._minio?.Port))
       .WithCredentials(AppSettings._minio?.AccessKey, AppSettings._minio?.SecretKey)
       .Build();
        
  • 创建桶并更改桶文件的过期时间
    •  设置Lifecycle  
      // 创建 bucket
      await minioClient.MakeBucketAsync(new MakeBucketArgs().WithBucket(bucketName));
      var rule = new LifecycleRule()
      {
          Expiration = new Expiration() { Days = 3 }
      };
      var args = new SetBucketLifecycleArgs();
      args.WithBucket(bucketName);
      args.WithLifecycleConfiguration(new LifecycleConfiguration() {
          Rules = new Collection<LifecycleRule> { rule }
      });
      await minioClient.SetBucketLifecycleAsync(args);
  • 上传文件
    • 字节数组 byte[] byteArray 
      using (MemoryStream stream = new MemoryStream(byteArray))
      {
          stream.Position = 0;
          // Upload a file to bucket.
           await minioClient.PutObjectAsync(new PutObjectArgs()
               .WithBucket(bucketName)
              .WithObject(objectName)
              .WithObjectSize(dwSize)
              .WithStreamData(stream)
              .WithContentType("image/jpeg")).ConfigureAwait(false);
      }
  • 下载文件
    • 流式下载文件 
      public static async Task<byte[]> DownLoadObjectAsync(string bucketName, string objectName)
      {
      MemoryStream resultStream = new MemoryStream();
      var getArgs = new GetObjectArgs()
          .WithBucket(bucketName)
          .WithObject(objectName)
          .WithCallbackStream(async (stream, cancellationToken) =>
          {
              await stream.CopyToAsync(resultStream, cancellationToken).ConfigureAwait(false);
              await stream.DisposeAsync().ConfigureAwait(false);
          });
          await minioClient.GetObjectAsync(getArgs);
          var resultByte = resultStream.GetBuffer();
          return resultByte;
      }

       

 

标签:Minio,stream,await,API,bucketName,var,new,NET,minioClient
From: https://www.cnblogs.com/xzion/p/18358229

相关文章

  • 英智大模型推理API:免费让Llama 3.1成为您创新项目的强力后盾
     “免费版(Llama3.1扩展包)”是英智大模型推理API服务平台面向开发者推出的Llama3.1免费套餐,供广大开发者无门槛、不限制Tokens、永久使用,每位用户限购1次。包含服务:“英智Llama3.1服务”:QPS(每秒查询数)限制为1次,统计Tokens。立即免费使用Llama3.18B,请访问:https:......
  • StarNet:关于 Element-wise Multiplication 的高性能解释研究 | CVPR 2024
    论文揭示了staroperation(元素乘法)在无需加宽网络下,将输入映射到高维非线性特征空间的能力。基于此提出了StarNet,在紧凑的网络结构和较低的能耗下展示了令人印象深刻的性能和低延迟来源:晓飞的算法工程笔记公众号论文:RewritetheStars论文地址:https://arxiv.org/abs/240......
  • Mqttnet实现的mqtt客户端
    usingSystem.Collections.Concurrent;usingSystem.Text;usingMQTTnet;usingMQTTnet.Client;usingMicrosoft.Extensions.Options;usingMicrosoft.Extensions.Logging;usingMQTTnet.Server;usingMicrosoft.Extensions.Hosting;usingSystem.Net.NetworkInformat......
  • Magic-Api数据库插入操作汇总
    1.测试表准备--id非自增CREATETABLE`test_idms`(`id`varchar(32)CHARACTERSETutf8mb4COLLATEutf8mb4_general_ciNOTNULL,`name`varchar(255)COLLATEutf8mb4_general_ciDEFAULTNULLPRIMARYKEY(`id`))ENGINE=InnoDB;--id自增CREATETABLE......
  • ag-grid api方法
    ag-Grid 的 gridApi 提供了一系列功能,允许你对网格进行各种操作,如数据操作、过滤、排序、分页等。以下是一些常用的 gridApi 方法及其功能:数据操作setRowData(rowData):设置网格的数据。gridApi.setRowData(myRowData);updateRowData(transaction):更新网格的数......
  • 解决《龙珠超宇宙2》中缺失 api-ms-win-crt-runtime-l1-1-0.dll 的问题 快速恢复游戏
    在尝试启动《龙珠超宇宙2》(DragonBallXenoverse2)时,可能会遇到一个常见的问题:“丢失api-ms-win-crt-runtime-l1-1-0.dll”。这个问题通常是由游戏所需的MicrosoftVisualC++运行库缺失或损坏引起的。本文将详细介绍该问题的原因以及如何解决它。问题原因api-ms-win-cr......
  • 【Java手写RPC框架系列-1】—— 基础知识准备:RPC+Netty
    代码随想录知识星球介绍https://articles.zsxq.com/id_m76jd72243bi.html基于Netty手写实现RPChttps://www.cnblogs.com/mic112/p/15565795.html项目背景与介绍RPC:远程过程调用协议:客户端在不知道调用细节的情况下,调用存在于远程计算机上的某个对象,就像调用本地应用程序......
  • 关于Pytorch中net.eval()和torch.no_grad()的意义理解
    Q:defevaluate_accuracy(net,data_iter):#@save"""计算在指定数据集上模型的精度"""ifisinstance(net,torch.nn.Module):net.eval()#将模型设置为评估模式metric=Accumulator(2)#正确预测数、预测总数withtorch.no_grad():......
  • Java并发类的主要API方法-Semaphore
    一、Semaphoreemaphore是Java并发包(java.util.concurrent)中的一个同步工具类,类Semaphore所提供的功能完全就是synchronized关键字的升级版,但它提供的功能更加的强大与方便,主要的作用就是控制线程并发的数量,而这一点,单纯地使用synchronized是做不到的。emaphore它用......
  • kubernetes基于csi使用rbd存储
    描述ceph-csi扩展各种存储类型的卷的管理能力,实现第三方存储ceph的各种操作能力与k8s存储系统的结合。通过ceph-csi使用cephrbd块设备,它动态地提供rbd以支持Kubernetes持久化存储,并将这些rbd映射给pod做为块设备持久化数据使用。Ceph将pod存在块设备的数据以副本......