using IBKLinker_Minio.Entity; using log4net; using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; using System.Web.Http; using Minio; using System.Net.PeerToPeer; using System.IO; using System.Reactive.Linq; using Minio.DataModel; using System.Security.AccessControl; using System.IO.Pipes; using System.Net.Mime; using IBKLinker_Minio.Entity.MinioController; using SOA.Objects; using SOA.Persistent; using System.Web.Http.Results; using System.Runtime.InteropServices.ComTypes; using System.Xml; using Swashbuckle.Swagger; using System.Runtime.ConstrainedExecution; using System.Net.Http; using System.Web.UI.WebControls; using System.Runtime.Remoting.Contexts; using System.Runtime.InteropServices; using System.Net; using NPOI.XSSF.UserModel; using NPOI.SS.UserModel; using System.Net.Http.Headers; using NPOI.SS.Formula.Functions; using System.Xml.Linq; using NPOI.HPSF; namespace IBKLinker_Minio.Common { /// /// 作者:孙亮 /// 编写时间:2023-10-13 /// 编写内容:minio业务逻辑 /// public class MinioBusinessLogic { private static readonly ILog logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); /// /// 异步处理取minio文件流数据方法 /// public async Task Download(string bucketName, string path) { MemoryStream memoryStream = new MemoryStream(); try { var minio = new MinioClient("172.15.88.212:9000", "minioadmin", "minioadmin");//验证连接minio数据库 bucketName = "dayetegang";//桶名 await minio.GetObjectAsync(bucketName, path, (stream) => { stream.CopyTo(memoryStream);//将文件去除复制到memoryStream }); memoryStream.Position = 0;//清除 string base64String = Convert.ToBase64String(memoryStream.ToArray());//转换base64 return base64String;//返回值 } catch (Exception ex) { logger.InfoFormat(ex.ToString()); throw; } } /// /// 文件上传操作日志记录 /// public void MinioOperationLog(string OperateUser, string FileName, string Operate, string FilePk, string FileUPk, IDbContext db) //传参为操作人、文件名、操作、数据库连接上下文对象 { MinioOperationlog MOdata = new MinioOperationlog(); DateTime time = DateTime.Now;//时间 MOdata.Pk = Convert.ToInt32(db.QueryScalar("select S_MINIO_OPERATIONLOG.nextval from dual"));///拿到表自增长的值赋值给自增长主键pk; MOdata.OperateUser = OperateUser;//操作者 MOdata.OperateTime = time;//操作时间 MOdata.FilePk = FilePk.ToString();//文件pk MOdata.FileUPk = FileUPk.ToString();//文件父级pk MOdata.FileName = FileName;//文件名 MOdata.Operater = OperateUser + Operate + FileName;//操作(操作人,加操作,加文件名称) MOdata.CreationTime = time;//创建时间 db.Insert(MOdata);//写入数据库 } } }