コード例 #1
0
        public static void AssertOptionsMatch(MinioClient client, MinioOptions options)
        {
            var clientType = client.GetType();

            var endpoint = clientType
                           .GetProperty(nameof(MinioOptions.Endpoint), BindingFlags.Instance | BindingFlags.NonPublic)
                           ?.GetValue(client);

            Assert.Equal($"http://{options.Endpoint}", endpoint);

            var region = clientType
                         .GetField(nameof(MinioOptions.Region), BindingFlags.Instance | BindingFlags.NonPublic)
                         ?.GetValue(client);

            Assert.Equal(options.Region, region);

            var accessKey = clientType
                            .GetProperty(nameof(MinioOptions.AccessKey), BindingFlags.Instance | BindingFlags.NonPublic)
                            ?.GetValue(client);

            Assert.Equal(options.AccessKey, accessKey);

            var secretKey = clientType
                            .GetProperty(nameof(MinioOptions.SecretKey), BindingFlags.Instance | BindingFlags.NonPublic)
                            ?.GetValue(client);

            Assert.Equal(options.SecretKey, secretKey);

            var sessionToken = clientType
                               .GetProperty(nameof(MinioOptions.SessionToken), BindingFlags.Instance | BindingFlags.NonPublic)
                               ?.GetValue(client);

            Assert.Equal(options.SessionToken, sessionToken);
        }
コード例 #2
0
        public static IConveyBuilder AddMinio(this IConveyBuilder builder,
                                              MinioOptions minioOptions)
        {
            if (minioOptions.Secure)
            {
                builder.Services.AddScoped(x => new MinioClient(minioOptions.Url,
                                                                minioOptions.AccessKey,
                                                                minioOptions.SecretKey
                                                                ).WithSSL());
            }
            else
            {
                builder.Services.AddScoped(x => new MinioClient(minioOptions.Url,
                                                                minioOptions.AccessKey,
                                                                minioOptions.SecretKey
                                                                ));
            }
            builder.Services.AddSingleton(minioOptions);
            builder.Services.AddTransient <IMinioService, MinioService>();

            return(builder);
        }
コード例 #3
0
        public static MinioOptions BindMinioOptions(this IConfiguration configuration, MinioOptions minioOptions = null)
        {
            var options = minioOptions ?? new MinioOptions();

            configuration.GetSection(MinioConfigSectionKey).Bind(options);
            return(options);
        }
コード例 #4
0
 public MinioService(MinioOptions minioOptions, MinioClient minioClient)
 {
     _minioOptions = minioOptions;
     _minioClient  = minioClient;
 }