Сразу скажу, что dotnet разработчик из меня такой себе, точнее я совсем не разработчик. Но я настраиваю MinIO для разработчиков и бывают ситуации, когда разработчик, который пишет код на dotnet прибегает со словами ты что-то настроил неправильно, у меня не работает код. На мои вопросы почему у остальных работает нормально он просто хлопает глазами и говорит не знаю.
Так вот я решил накатать простое приложение, которое просто загрузит файл в корзину на его глазах и соответственно я могу отправить его смотреть свой код.
Установка dotnet
Для windows:
winget install Microsoft.DotNet.SDK.8
winget install Microsoft.DotNet.AspNetCore.8
winget install Microsoft.DotNet.DesktopRuntime.8
Подготовка
dotnet new console -n FileUploader
dotnet add package Minio
Меняем содержимое файла Program.cs на:
using Minio;
using Minio.Exceptions;
using Minio.DataModel.Args;
namespace FileUploader
{
class FileUpload
{
static void Main(string[] args)
{
var endpoint = "minio-host";
var accessKey = "user";
var secretKey = "pwd";
try
{
var minio = new MinioClient()
.WithEndpoint(endpoint)
.WithCredentials(accessKey, secretKey)
.WithSSL()
.Build();
FileUpload.Run(minio).Wait();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadLine();
}
// File uploader task.
private async static Task Run(IMinioClient minio)
{
var bucketName = "bucket";
var objectName = "noPmem.log";
var filePath = "C:\\Users\\user\\Downloads\\noPmem.log"; // Change this path
var contentType = "application/zip";
try
{
// Make a bucket on the server, if not already present.
var beArgs = new BucketExistsArgs()
.WithBucket(bucketName);
bool found = await minio.BucketExistsAsync(beArgs).ConfigureAwait(false);
if (!found)
{
var mbArgs = new MakeBucketArgs()
.WithBucket(bucketName);
await minio.MakeBucketAsync(mbArgs).ConfigureAwait(false);
}
// Upload a file to bucket.
var putObjectArgs = new PutObjectArgs()
.WithBucket(bucketName)
.WithObject(objectName)
.WithFileName(filePath)
.WithContentType(contentType);
await minio.PutObjectAsync(putObjectArgs).ConfigureAwait(false);
Console.WriteLine("Successfully uploaded " + objectName);
}
catch (MinioException e)
{
Console.WriteLine("File Upload Error: {0}", e.Message);
}
}
}
}
Запуск
Для запуска приложения осталось выполнить всего 2 команды:
dotnet build
dotnet run
Successfully uploaded noPmem.log
Комментарии