返回介绍

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

发布于 2020-10-02 16:00:53 字数 8529 浏览 1074 评论 0 收藏 0

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控制台运行下面的命令。

PM> Install-Package Minio

MinIO Client示例

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

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

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

using Minio;

// Initialize the client with access credentials.
private static MinioClient minio = new MinioClient("play.min.io",
                "Q3AM3UQ867SPQQA43P2F",
                "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG"
                ).WithSSL();

// Create an async task for listing buckets.
var getListBucketsTask = minio.ListBucketsAsync();

// Iterate over the list of buckets.
foreach (Bucket bucket in getListBucketsTask.Result.Buckets)
{
    Console.WriteLine(bucket.Name + " " + bucket.CreationDateDateTime);
}

完整的_File Uploader_示例

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

using System;
using Minio;
using Minio.Exceptions;
using Minio.DataModel;
using System.Threading.Tasks;

namespace FileUploader
{
    class FileUpload
    {
        static void Main(string[] args)
        {
            var endpoint  = "play.min.io";
            var accessKey = "Q3AM3UQ867SPQQA43P2F";
            var secretKey = "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG";
            try
            {
                var minio = new MinioClient(endpoint, accessKey, secretKey).WithSSL();
                FileUpload.Run(minio).Wait();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            Console.ReadLine();
        }

        // File uploader task.
        private async static Task Run(MinioClient minio)
        {
            var bucketName = "mymusic";
            var location   = "us-east-1";
            var objectName = "golden-oldies.zip";
            var filePath = "C:\\Users\\username\\Downloads\\golden_oldies.mp3";
            var contentType = "application/zip";

            try
            {
                // Make a bucket on the server, if not already present.
                bool found = await minio.BucketExistsAsync(bucketName);
                if (!found)
                {
                    await minio.MakeBucketAsync(bucketName, location);
                }
                // Upload a file to bucket.
                await minio.PutObjectAsync(bucketName, objectName, filePath, contentType);
                Console.WriteLine("Successfully uploaded " + objectName );
            }
            catch (MinioException e)
            {
                Console.WriteLine("File Upload Error: {0}", e.Message);
            }
        }
    }
}

运行MinIO Client示例

Windows

  • clone这个项目,并在Visual Studio 2017中打开Minio.Sln。
    $ git clone https://github.com/minio/minio-dotnet && cd minio-dotnet
  • 在Minio.Examples/Program.cs中输入你的认证信息、存储桶名称、对象名称等。 在Program.cs中取消注释以下类似的测试用例来运行示例。
    //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。
$ ./mono_install.sh
运行Minio.Examples
$ cd Minio.Examples
$ dotnet build -c Release 
$ dotnet run

操作存储桶

存储桶策略

存储桶通知

操作文件对象

操作对象

Presigned操作

客户端自定义设置

了解更多

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文