• 如何使用AWS SDK for .NET操作Minio Server
    • 1. 前提条件
    • 2. 安装
    • 3. 示例
    • 5. 了解更多

    如何使用AWS SDK for .NET操作Minio Server

    aws-sdk-dotnet是.NET Framework的官方AWS开发工具包。在本文中,我们将学习如何使用aws-sdk-dotnet来操作Minio Server。

    1. 前提条件

    从这里下载并安装Minio Server。

    如果在本地运行Minio Server,必须要设置MINIO_REGION环境变量。

    安装Visual Studio 2015, Visual Studio 2017或者Visual Studio Code。从这里查找Visual Studio的安装版本。

    2. 安装

    aws-sdk-dotnet有Nuget包。此软件包仅包含使用AWS S3所必需的库。Nuget包的安装可以使用"Manage Nuget Packages…" UI,或者使用Nuget管理控制台,输入Install-Package AWSSDK.S3。安装程序将自动下载与你的项目兼容的.NET平台的库。.NET Frameworks 3.5、 4.5 以及 .NET Core 1.1都有这个包。

    老版本(version 2)的包在这里,不过不建议使用,因为它会下载所有的AWS SDK库,而不是只下载S3模块。

    3. 示例

    下面示例的代码应该直接复制,而不是用自动生成的Program.cs文件里的代码。在Visual Studio IDE中创建一个控制台项目,并用下面的代码替换生成的Program.cs。更新ServiceURL,accessKeysecretKey成你的Minio Server的配置。

    下面的示例采用aws-sdk-dotnet以列举的方式打印出Minio Server里所有的存储桶和第一个存储桶里的所有对象。

    1. using Amazon.S3;
    2. using System;
    3. using System.Threading.Tasks;
    4. using Amazon;
    5. class Program
    6. {
    7. private const string accessKey = "PLACE YOUR ACCESS KEY HERE";
    8. private const string secretKey = "PLACE YOUR SECRET KEY HERE"; // 不要把你的秘钥硬编码到你的代码中。
    9. static void Main(string[] args)
    10. {
    11. Task.Run(MainAsync).GetAwaiter().GetResult();
    12. }
    13. private static async Task MainAsync()
    14. {
    15. var config = new AmazonS3Config
    16. {
    17. RegionEndpoint = RegionEndpoint.USEast1, // 必须在设置ServiceURL前进行设置,并且需要和`MINIO_REGION`环境变量一致。
    18. ServiceURL = "http://localhost:9000", // 替换成你自己的Minio Server的URL
    19. ForcePathStyle = true // 必须设为true
    20. })
    21. var amazonS3Client = new AmazonS3Client(accessKey, secretKey, config);
    22. // 如果你想调试与S3存储的通信的话,可以把下一行代码取消注释,并且实现 private void OnAmazonS3Exception(object sender, Amazon.Runtime.ExceptionEventArgs e)
    23. // amazonS3Client.ExceptionEvent += OnAmazonS3Exception;
    24. var listBucketResponse = await amazonS3Client.ListBucketsAsync();
    25. foreach (var bucket in listBucketResponse.Buckets)
    26. {
    27. Console.Out.WriteLine("bucket '" + bucket.BucketName + "' created at " + bucket.CreationDate);
    28. }
    29. if (listBucketResponse.Buckets.Count > 0)
    30. {
    31. var bucketName = listBucketResponse.Buckets[0].BucketName;
    32. var listObjectsResponse = await amazonS3Client.ListObjectsAsync(bucketName);
    33. foreach (var obj in listObjectsResponse.S3Objects)
    34. {
    35. Console.Out.WriteLine("key = '" + obj.Key + "' | size = " + obj.Size + " | tags = '" + obj.ETag + "' | modified = " + obj.LastModified);
    36. }
    37. }
    38. }
    39. }

    5. 了解更多

    • AWS SDK for .NET
    • 配置 AWS SDK with .NET Core
    • Amazon S3 for DotNet文档

    原文: https://docs.minio.io/cn/how-to-use-aws-sdk-for-net-with-minio-server.html