1、Minio 服务器下载和安装
要在本地安装和运行 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>
–在 Linux 和 MacOS 上:
./minio server
MinIO 服务器数据存储的文件夹路径。如果指定的文件夹不存在,MinIO 服务器会自动创建它。
7. 当 MinIO 服务器成功启动后,你会在命令行中看到类似以下的输出:
Endpoint:
http://127.0.0.1:9000
http://192. 168.1.100:9000
AccessKey:
SecretKey:
...
这些信息包括MinIO服务器的访问地址(Endpoint)、
访问密钥(AccessKey)和密钥(SecretKey)。请
记下这些信息,你将在代码中使用它们来连接和操作MinIO 服务器。
1. 现在,你可以使用代码来连接和操作 MinIO 服务器,如前面提供的示例代码所示。
请注意,这只是一个本地安装和运行 MinIO 服务器的简单示例。在实际应用中,你可能需要进行更多的配置和安全性设置。你可以参考 MinIO 的官方文档
https://docs.min.io/
2、图片,视频上传和下载
使用 Minio 创建文件数据库
以下是一个使用.NET 8 和 MinIO 实现的完整示例,用于建立一个可以访问的数据库,包括上传和下载历史照片和视频。
首先,你需要安装 MinIO NuGet 包。在 Visual Studio中,右键点击项目,选择”管理 NuGet 程序包”,然后搜索并安装”Minio”。
接下来,你需要在 MinIO 服务器上创建一个存储桶(Bucket)。你可以使用 MinIO 的 Web 管理界面或者 MinIO 的命令行工具来创建存储桶。
以下是一个使用.NET 8 和 MinIO 实现的示例代码:
using System;
using System.IO;
using System.Threading.Tasks;
using Minio;
namespace MinioDemo
{
class Program
{
static async Task Main(string[] args)
{
// MinIO 服务器的访问信息
string endpoint = "your_minio_en
dpoint";
string accessKey = "your_access_k
ey";
string secretKey = "your_secret_ke
y";
bool useSSL = false;
// 创建 MinIO 客户端实例
var minio = new MinioClient(end
point, accessKey, secretKey, useSSL);
// 存储桶名称
string bucketName = "your_bucke
t_name";
// 上传文件
string filePath = "path_to_your_fil
e";
string objectName = "your_object _name";
await UploadFile(minio, bucketNa
me, filePath, objectName);
// 下载文件
string downloadPath = "path_to_s
ave_downloaded_file";
await DownloadFile(minio, bucket
Name, objectName, downloadPath);
}
static async Task UploadFile(MinioClie
nt minio, string bucketName, string filePath,
string objectName)
{
try
{
// 检查存储桶是否存在,如果不存
在则创建
bool bucketExists = await mi
nio.BucketExistsAsync(bucketName);
if (!bucketExists)
{
await minio.MakeBucketAs
ync(bucketName);
Console.WriteLine($"存储桶
{bucketName} 创建成功");
}
// 使用 PutObjectAsync 方法上
传文件
await minio.PutObjectAsync(b
ucketName, objectName, filePath);
Console.WriteLine($"文件 {obje
ctName} 上传成功");
}
catch (Exception ex)
{
Console.WriteLine($"上传文件失
败: {ex.Message}");
}
}
static async Task DownloadFile(Minio
Client minio, string bucketName, string object
Name, string downloadPath)
{
try
// 使用 GetObjectAsync 方法下
载文件
await minio.GetObjectAsync(b
ucketName, objectName,
(stream) =>
{
using (var fileStream
=File.Create(downloadPath))
{
stream.CopyTo(file
Stream);
}
});
Console.WriteLine($"文件 {obje
ctName} 下载成功,保存路径为 {downloadPath}");
}
catch (Exception ex)
{
Console.WriteLine($"下载文件失
败: {ex.Message}");
}
}
}
}
在上述示例中,你需要将 your_minio_endpoint、
your_access_key、your_secret_key、
your_bucket_name、path_to_your_file、
your_object_name 和
path_to_save_downloaded_file 替换为你自己的MinIO 服务器的访问信息、存储桶名称、文件路径和对象名称。在 UploadFile 方法中,我们首先检查存储桶是否存在,如果不存在则创建。然后,我们使用PutObjectAsync 方法上传文件到 MinIO 服务器。
在DownloadFile方法中,我们使用GetObjectAsync方法从 MinIO 服务器下载文件,并保存到指定的路径。请注意,这只是一个简单的示例,实际应用中可能需要更复杂的错误处理和参数验证。你可以根据自己的需求进行修改和扩展。