MinIO客户端操作(C#, 上传下载)

可实现文件上传、下载,查询bucket内的所有文件(递归,不返回文件夹),查询某一文件夹或bucket根目录下的文件和文件夹(非递归)。

Bucket类似根文件夹,Object为bucket下实际存储对象(文件或文件夹)。

实例化

new MinioClient()
                    .WithEndpoint("localhost:9200")
                    .WithCredentials("8VqBZTKDTuAO42yb", "HhT5jGEUaqwqzoG7Qc76ndVVbADBwFij")
                    .Build()

上传

await instance.PutObjectAsync(new PutObjectArgs()
			.WithBucket(bucket)
			.WithObject("pic/ubuntu.png")
			.WithFileName("E:\\ubuntu.png")
			.WithContentType("application/octet-stream"));

下载(通过浏览器)

public async Task<FileStreamResult> Download(string bucketName, string path)
        {
            MemoryStream memoryStream = new MemoryStream();
            MinioClient minio = //instance;
            await minio.GetObjectAsync(new GetObjectArgs().WithBucket(bucketName)
                .WithObject(path)
                .WithCallbackStream(stream => {
                    stream.CopyTo(memoryStream);
                }));
            memoryStream.Position = 0;
            return File(memoryStream, "application/octet-stream",path.Split('/').Last());
        }

查询

/// <summary>
        /// 
        /// </summary>
        /// <param name="minio"></param>
        /// <param name="bucketName"></param>
        /// <param name="prefix">文件夹完整路径(带/)</param>
        /// <param name="recursive">是否递归</param>
        /// <param name="versions"></param>
        /// <returns></returns>
        public static async Task<List<Item>> GetBucketObjects(MinioClient minio,
        string bucketName,
        string prefix = null,
        bool recursive = false,
        bool versions = false)
        {
            List<Item> items = new List<Item>();
            try
            {
                var listArgs = new ListObjectsArgs()
                    .WithBucket(bucketName)
                    .WithPrefix(prefix)
                    .WithRecursive(recursive);
                var observable = minio.ListObjectsAsync(listArgs);
                //var subscription = observable.Subscribe(
                //    item => items.Add(item));
                await observable.ForEachAsync(item =>
                {
                    items.Add(item);
                });
            }
            catch (Exception e)
            {
                Console.WriteLine($"[Bucket]  Exception: {e}");
            }

            return items;
        }

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将本地数据迁移到MinIO并使用MinIO客户进行操作,您可以按照以下步骤进行操作: 1. 安装MinIO客户:首先,您需要在本地计算机上安装MinIO客户。您可以从MinIO的官方网站下载适用于您操作系统的MinIO客户,并按照安装说明进行安装。 2. 配置MinIO客户:在安装完成后,您需要配置MinIO客户以连接到MinIO服务器。使用以下命令配置MinIO客户: ``` mc config host add <别名> <MinIO服务器地址> <访问密钥> <秘密密钥> ``` 其中,`<别名>`是您为MinIO服务器设置的别名,`<MinIO服务器地址>`是MinIO服务器的URL,`<访问密钥>`和`<秘密密钥>`是用于访问MinIO服务器的凭据。 3. 创建存储桶:在迁移数据之前,您需要在MinIO服务器上创建一个存储桶来存储数据。使用以下命令创建存储桶: ``` mc mb <别名>/<存储桶名称> ``` 其中,`<别名>`是您在配置MinIO客户时设置的别名,`<存储桶名称>`是您要创建的存储桶的名称。 4. 迁移数据:一旦配置和准备工作完成,您可以使用MinIO客户将本地数据迁移到MinIO服务器。使用以下命令将本地文件夹中的数据迁移到MinIO服务器的存储桶中: ``` mc cp <本地文件夹路径> <别名>/<存储桶名称> ``` 其中,`<本地文件夹路径>`是您要迁移的本地文件夹的路径,`<别名>`是您在配置MinIO客户时设置的别名,`<存储桶名称>`是您要将数据迁移到的MinIO存储桶的名称。 以上是将本地数据迁移到MinIO并使用MinIO客户进行操作的基本步骤。如果您有任何进一步的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值