• 适用于与Amazon S3兼容的云存储的Minio .NET SDK
    • 最低需求
    • 使用NuGet安装
    • Minio Client示例
    • 完整的File Uploader示例
    • 运行Minio Client示例
      • Windows
        • 在Linux上设置Mono和.NETCore
        • 运行Minio.Examples
      • 操作存储桶
      • 存储桶策略
      • 存储桶通知
      • 操作文件对象
      • 操作对象
      • Presigned操作
      • 客户端自定义设置
  • 了解更多

    适用于与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。
    • 为你的发行版发装.NETCore和Mono 。请参阅示例脚本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

    操作存储桶

    • MakeBucket.cs
    • ListBuckets.cs
    • BucketExists.cs
    • RemoveBucket.cs
    • ListObjects.cs
    • ListIncompleteUploads.cs

      存储桶策略

    • GetPolicy.cs

    • SetPolicy.cs

      存储桶通知

    • GetBucketNotification.cs

    • SetBucketNotification.cs
    • RemoveAllBucketNotifications.cs

      操作文件对象

    • FGetObject.cs

    • FPutObject.cs

      操作对象

    • GetObject.cs

    • GetPartialObject.cs
    • PutObject.cs
    • StatObject.cs
    • RemoveObject.cs
    • RemoveObjects.cs
    • CopyObject.cs
    • RemoveIncompleteUpload.cs

      Presigned操作

    • PresignedGetObject.cs

    • PresignedPutObject.cs
    • PresignedPostPolicy.cs

      客户端自定义设置

    • SetAppInfo

    • SetTraceOn
    • SetTraceOff

      了解更多

    • 完整文档

    • Minio .NET SDK API文档

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