@@ -14,8 +14,17 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace IRaCIS.Core.Application.Helper
|
||||
{
|
||||
public class MinIOOptions
|
||||
{
|
||||
public string Endpoint { get; set; }
|
||||
public string Port { get; set; }
|
||||
public bool UseSSL { get; set; }
|
||||
public string AccessKey { get; set; }
|
||||
public string SecretKey { get; set; }
|
||||
public string BucketName { get; set; }
|
||||
}
|
||||
|
||||
public class AliyunOssOptions
|
||||
public class AliyunOSSOptions
|
||||
{
|
||||
public string RegionId { get; set; }
|
||||
public string AccessKeyId { get; set; }
|
||||
@@ -23,15 +32,56 @@ namespace IRaCIS.Core.Application.Helper
|
||||
public string EndPoint { get; set; }
|
||||
public string BucketName { get; set; }
|
||||
|
||||
public string RoleArn { get;set; }
|
||||
public string RoleArn { get; set; }
|
||||
|
||||
public string Region { get; set; }
|
||||
|
||||
public string ViewEndpoint { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public class ObjectStoreServiceOptions
|
||||
{
|
||||
public string ObjectStoreUse { get; set; }
|
||||
public AliyunOSSOptions AliyunOSS { get; set; }
|
||||
public MinIOOptions MinIO { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public class ObjectStoreDTO
|
||||
{
|
||||
public string ObjectStoreUse { get; set; }
|
||||
public AliyunOSSTempToken AliyunOSS { get; set; }
|
||||
|
||||
public MinIOOptions MinIO { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public class AliyunOSSTempToken
|
||||
{
|
||||
public string AccessKeyId { get; set; }
|
||||
public string AccessKeySecret { get; set; }
|
||||
public string SecurityToken { get; set; }
|
||||
public string Expiration { get; set; }
|
||||
|
||||
public string Region { get; set; }
|
||||
public string BucketName { get; set; }
|
||||
public string ViewEndpoint { get; set; }
|
||||
}
|
||||
|
||||
|
||||
|
||||
public enum ObjectStoreUse
|
||||
{
|
||||
AliyunOSS = 0,
|
||||
MinIO = 1,
|
||||
AWS = 2,
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public interface IOSSService
|
||||
{
|
||||
@@ -41,29 +91,17 @@ namespace IRaCIS.Core.Application.Helper
|
||||
public class OSSService : IOSSService
|
||||
{
|
||||
|
||||
public AliyunOssOptions _OSSConfig { get; set; }
|
||||
public AliyunOSSOptions _OSSConfig { get; set; }
|
||||
|
||||
public OssClient _ossClient { get; set; }
|
||||
|
||||
|
||||
|
||||
public OSSService(IOptionsMonitor<AliyunOssOptions> options)
|
||||
public OSSService(IOptionsMonitor<AliyunOSSOptions> options)
|
||||
{
|
||||
var ossOptions = options.CurrentValue;
|
||||
|
||||
_OSSConfig= ossOptions;
|
||||
|
||||
//_OSSConfig = new AliyunOssOptions()
|
||||
//{
|
||||
// RegionId = ossOptions.RegionId,
|
||||
// AccessKeyId = ossOptions.AccessKeyId,
|
||||
// AccessKeySecret = ossOptions.AccessKeySecret,
|
||||
// EndPoint = ossOptions.EndPoint,
|
||||
// BucketName = ossOptions.BucketName,
|
||||
// RoleArn = ossOptions.RoleArn,
|
||||
// Region = ossOptions.Region,
|
||||
// ViewEndpoint = ossOptions.ViewEndpoint
|
||||
//};
|
||||
_OSSConfig = ossOptions;
|
||||
|
||||
_ossClient = new OssClient(_OSSConfig.EndPoint, _OSSConfig.AccessKeyId, _OSSConfig.AccessKeySecret);
|
||||
|
||||
|
||||
@@ -89,6 +89,7 @@
|
||||
<PackageReference Include="MediatR" Version="12.1.1" />
|
||||
<PackageReference Include="MimeKit" Version="4.2.0" />
|
||||
<PackageReference Include="MiniExcel" Version="1.31.2" />
|
||||
<PackageReference Include="Minio" Version="6.0.1" />
|
||||
<PackageReference Include="MiniWord" Version="0.7.0" />
|
||||
<PackageReference Include="My.Extensions.Localization.Json" Version="3.0.0">
|
||||
<TreatAsUsed>true</TreatAsUsed>
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
using BeetleX.BNR;
|
||||
using BeetleX;
|
||||
using BeetleX.BNR;
|
||||
using IRaCIS.Core.Application.Helper;
|
||||
using IRaCIS.Core.Application.Service;
|
||||
using IRaCIS.Core.Application.ViewModel;
|
||||
using IRaCIS.Core.Domain.Share;
|
||||
@@ -12,6 +14,8 @@ using Microsoft.Extensions.Caching.Distributed;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Options;
|
||||
using MiniExcelLibs;
|
||||
using Minio;
|
||||
using NPOI.POIFS.Crypt;
|
||||
using System.Linq.Expressions;
|
||||
using System.Reflection.Metadata;
|
||||
using System.Security.Cryptography;
|
||||
@@ -58,7 +62,22 @@ namespace IRaCIS.Application.Services
|
||||
//_cache = cache;
|
||||
}
|
||||
|
||||
[AllowAnonymous]
|
||||
public async Task<IResponseOutput> TestMinIO([FromServices] IOptionsMonitor<ObjectStoreServiceOptions> options)
|
||||
{
|
||||
|
||||
var minIO = options.CurrentValue.MinIO;
|
||||
|
||||
|
||||
var minioClient = new MinioClient().WithEndpoint($"{minIO.Endpoint}:{minIO.Port}")
|
||||
.WithCredentials(minIO.AccessKey,minIO.SecretKey)
|
||||
.Build();
|
||||
|
||||
|
||||
|
||||
|
||||
return ResponseOutput.Ok(options);
|
||||
}
|
||||
|
||||
[AllowAnonymous]
|
||||
public async Task<IResponseOutput> TestDistributedLock( )
|
||||
|
||||
Reference in New Issue
Block a user