当前位置: 首页 > news >正文

C#系列-使用 Minio 做图片服务器实现图片上传 和下载(13)

1Minio 服务器下载和安装

要在本地安装和运行 MinIO 服务器,你可以按照以下 步骤进行操作:

1. 访问 MinIO 的官方网站:https://min.io/,然后 点击页面上的”Download”按钮。

2. 在下载页面上,选择适合你操作系统的 MinIO 服 务器版本进行下载。MinIO 服务器支持 Windows、Linux 和 MacOS 等操作系统。

3. 下载完成后,解压缩下载的文件。在 Windows 上,你可以使用压缩软件(如 WinRAR 或 7-Zip)

进行解压缩。在 Linux 和 MacOS 上,你可以使

用命令行工具进行解压缩。

4. 打开解压缩后的文件夹,你会看到一个名为” minio”(或”minio.exe”)的可执行文件。

5. 在命令行中,进入到 MinIO 服务器所在的文件 夹。

6.  运行以下命令来启动 MinIO 服务器:

在 Windows 上:

minio.exe server <path_to_data_director y>

minio.exe server d:\tempfile

在 Linux 和 MacOS 上:

./minio  server <path_to_data_directory>

<path_to_data_directory>是你想要用作 MinIO 服务器数据存储的文件夹路径。如果指定 的文件夹不存在,MinIO 服务器会自动创建它。

7. 当 MinIO 服务器成功启动后,你会在命令行中看 到类似以下的输出:

Endpoint:     http://127.0.0.1:9000 http://192.

168.1.10:9000

AccessKey: <your_access_key>

SecretKey: <your_secret_key>

...

这些信息包括 MinIO 服务器的访问地址(Endpoint)、 访问密钥(AccessKey)和密钥(SecretKey)。请 记下这些信息,你将在代码中使用它们来连接和操作 MinIO 服务器。

1. 现在,你可以使用代码来连接和操作 MinIO 服务 器,如前面提供的示例代码所示。

请注意,这只是一个本地安装和运行 MinIO 服务器的 简单示例。在实际应用中,你可能需要进行更多的配 置和安全性设置。你可以参考 MinIO 的官方文档 MinIO Object Storage for Kubernetes — MinIO Object Storage for Kubernetes

2、图片,视频上传和下载 使用 Minio 创建文件数据库

C#访问MinIO可以通过MinIO的官方.NET SDK来实现。MinIO是一个高性能的对象存储服务器,与Amazon S3兼容。你可以使用MinIO.NET SDK来上传、下载、列出、删除等操作对象存储中的文件。

首先,你需要在你的C#项目中安装MinIO.NET SDK。你可以通过NuGet包管理器来安装Minio包。

shell代码

Install-Package Minio -Version [版本号]

或者,如果你使用.NET Core CLI,可以运行:

shell代码

dotnet add package Minio --version [版本号]

安装完成后,你可以在你的C#代码中这样使用MinIO SDK

csharp代码

using Minio;

using System;

using System.IO;

using System.Threading.Tasks;

class Program

{

static async Task Main(string[] args)

{

// MinIO服务器地址、端口、访问密钥和秘密密钥

var minioClient = new MinioClient("minio.example.com", 9000, "YOUR-ACCESS-KEY", "YOUR-SECRET-KEY");

try

{

// 检查存储桶是否存在

bool isBucketExist = await minioClient.BucketExistsAsync("my-bucket");

if (!isBucketExist)

{

// 创建一个新的存储桶

await minioClient.MakeBucketAsync("my-bucket");

}

// 上传一个文件到存储桶

var putObjectArgs = new PutObjectArgs("my-bucket", "my-objectname", new MemoryStream(System.Text.Encoding.UTF8.GetBytes("Hello, MinIO!")));

await minioClient.PutObjectAsync(putObjectArgs);

// 下载文件

using (var memoryStream = new MemoryStream())

{

var getObjectArgs = new GetObjectArgs("my-bucket", "my-objectname");

await minioClient.GetObjectAsync(getObjectArgs, memoryStream);

memoryStream.Position = 0;

using (var streamReader = new StreamReader(memoryStream))

{

Console.WriteLine(streamReader.ReadToEnd());

}

}

// 列出存储桶中的对象

var listObjectsArgs = new ListObjectsArgs("my-bucket");

var objects = await minioClient.ListObjectsAsync(listObjectsArgs);

foreach (var obj in objects)

{

Console.WriteLine($"Object: {obj.Key}, Size: {obj.Size}");

}

// 删除对象

await minioClient.RemoveObjectAsync("my-bucket", "my-objectname");

}

catch (Exception ex)

{

Console.WriteLine(ex.Message);

}

}

}

确保替换上面代码中的minio.example.com9000YOUR-ACCESS-KEYYOUR-SECRET-KEY为实际的MinIO服务器地址、端口以及你的访问密钥和秘密密钥。

这个示例代码展示了如何创建MinIO客户端,检查存储桶是否存在,上传和下载文件,列出存储桶中的对象,以及删除对象。

注意:在生产环境中,你应该使用更安全的方式来管理你的访问密钥和秘密密钥,比如使用环境变量或秘密管理工具来存储这些敏感信息。

http://www.lryc.cn/news/300140.html

相关文章:

  • 生活篇——华为手机去除负一屏
  • 2024牛客寒假算法基础集训营2-c Tokitsukaze and Min-Max XOR
  • C语言:指针的基础详解
  • PHP+vue+mysql校园学生社团管理系统574cc
  • VS Code中主程序C文件引用了另一个.h头文件,编译时报错找不到函数
  • 边缘计算:重塑数字世界的未来
  • 2024 前端面试题 附录3
  • [Vue warn]: Duplicate keys detected: ‘1‘. This may cause an update error.
  • Docker-Learn(二)保存、导入、使用Docker镜像
  • 第三百一十五回
  • 区块链(一): 以太坊基础知识
  • 高级FPGA开发之基础协议PCIe
  • Vue核心基础1:数据代理
  • 12 ABC串口接收原理与思路
  • leetcode(二分查找)34.在排序数组中查找元素的第一个和最后一个位置(C++详细解释)DAY11
  • 算法刷题框架
  • 跟着cherno手搓游戏引擎【24】开启2D引擎前的项目总结(包括前置知识汇总)
  • 石子合并+环形石子合并+能量项链+凸多边形的划分——区间DP
  • IMX6ULL移植U-Boot 2022.04
  • ES实战-高级聚合
  • 网络安全产品之认识蜜罐
  • 推荐《架构探险:从零开始写Java Web框架》
  • Go教程-Go语言简介
  • React + SpringBoot + Minio实现文件的预览
  • 心法利器[107] onnx和tensorRT的bert加速方案记录
  • AcWing 122 糖果传递(贪心)
  • unity的重中之重:组件
  • Linux释放内存
  • Python算法题集_翻转二叉树
  • Git快速掌握,通俗易懂