适用于与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-PackageMinio

Minio Client示例

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

参数描述
endpoint对象存储服务的URL
accessKeyAccess key是唯一标识你的账户的用户ID。
secretKeySecret key是你账户的密码。
securetrue代表使用HTTPS。

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

  1. usingMinio;
  2. // Initialize the client with access credentials.
  3. privatestaticMinioClient minio =newMinioClient("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. usingSystem;
  2. usingMinio;
  3. usingMinio.Exceptions;
  4. usingMinio.DataModel;
  5. usingSystem.Threading.Tasks;
  6. namespaceFileUploader
  7. {
  8. classFileUpload
  9. {
  10. staticvoidMain(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 =newMinioClient(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 staticTaskRun(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