适用于与Amazon S3兼容的云存储的Minio .NET SDK

Minio .NET Client SDK提供了简单的API来访问Minio以及任何与Amazon S3兼容的对象存储服务。有关API和示例的完整列表,请查看Dotnet Client API Reference文档。本文假设你已经有VisualStudio开发环境。

最低需求

  • .NET 4.5.2,.NetStandard2.0或更高版本
  • Visual Studio 2017

    使用NuGet安装

为了安装.NET Framework的Minio .NET包,你可以在Nuget Package Manager控制台运行下面的命令。

  1. PM> Install-Package Minio

Minio Client示例

Minio client需要以下4个参数来连接与Amazon S3兼容的对象存储服务。

参数 描述
endpoint 对象存储服务的URL
accessKey Access key是唯一标识你的账户的用户ID。
secretKey Secret key是你账户的密码。
secure true代表使用HTTPS。

下面示例中使用运行在 https://play.minio.io:9000 上的Minio服务,你可以用这个服务来开发和测试。示例中的访问凭据是公开的。

  1. using Minio;
  2. // Initialize the client with access credentials.
  3. private static MinioClient minio = new MinioClient("play.minio.io:9000",
  4. "Q3AM3UQ867SPQQA43P2F",
  5. "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG"
  6. ).WithSSL();
  7. // Create an async task for listing buckets.
  8. var getListBucketsTask = minio.ListBucketsAsync();
  9. // Iterate over the list of buckets.
  10. foreach (Bucket bucket in getListBucketsTask.Result.Buckets)
  11. {
  12. Console.Out.WriteLine(bucket.Name + " " + bucket.CreationDateDateTime);
  13. }

完整的File Uploader示例

本示例程序连接到一个对象存储服务,创建一个存储桶,并且上传一个文件到该存储桶中。为了运行下面的示例,请点击[Link]启动该项目。

  1. using System;
  2. using Minio;
  3. using Minio.Exceptions;
  4. using Minio.DataModel;
  5. using System.Threading.Tasks;
  6. namespace FileUploader
  7. {
  8. class FileUpload
  9. {
  10. static void Main(string[] args)
  11. {
  12. var endpoint = "play.minio.io:9000";
  13. var accessKey = "Q3AM3UQ867SPQQA43P2F";
  14. var secretKey = "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG";
  15. try
  16. {
  17. var minio = new MinioClient(endpoint, accessKey, secretKey).WithSSL();
  18. FileUpload.Run(minio).Wait();
  19. }
  20. catch (Exception ex)
  21. {
  22. Console.Out.WriteLine(ex.Message);
  23. }
  24. Console.ReadLine();
  25. }
  26. // File uploader task.
  27. private async static Task Run(MinioClient minio)
  28. {
  29. var bucketName = "mymusic";
  30. var location = "us-east-1";
  31. var objectName = "golden-oldies.zip";
  32. var filePath = "C:\\Users\\username\\Downloads\\golden_oldies.mp3";
  33. var contentType = "application/zip";
  34. try
  35. {
  36. // Make a bucket on the server, if not already present.
  37. bool found = await minio.BucketExistsAsync(bucketName);
  38. if (!found)
  39. {
  40. await minio.MakeBucketAsync(bucketName, location);
  41. }
  42. // Upload a file to bucket.
  43. await minio.PutObjectAsync(bucketName, objectName, filePath, contentType);
  44. Console.Out.WriteLine("Successfully uploaded " + objectName );
  45. }
  46. catch (MinioException e)
  47. {
  48. Console.WriteLine("File Upload Error: {0}", e.Message);
  49. }
  50. }
  51. }
  52. }

运行Minio Client示例

Windows

  • clone这个项目,并在Visual Studio 2017中打开Minio.Sln。

    1. $ git clone https://github.com/minio/minio-dotnet && cd minio-dotnet
  • 在Minio.Examples/Program.cs中输入你的认证信息、存储桶名称、对象名称等。在Program.cs中取消注释以下类似的测试用例来运行示例。

    1. //Cases.MakeBucket.Run(minioClient, bucketName).Wait();
  • 从Visual Studio运行Minio.Client.Examples或#### Linux (Ubuntu 16.04)

    在Linux上设置Mono和.NETCore
注意:minio-dotnet需要mono 5.0.1稳定版本和.NET Core 2.0 SDK。
  • 为你的发行版发装.NETCoreMono 。请参阅示例脚本Ubuntu Xenial mono_install.sh安装.NETCore和Mono。
    1. $ ./mono_install.sh
运行Minio.Examples
  1. $ cd Minio.Examples
  2. $ dotnet build -c Release
  3. $ dotnet run

操作存储桶

原文: https://docs.minio.io/cn/dotnet-client-quickstart-guide.html