123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Text;
- using System.Threading.Tasks;
- using GxPress.Common.Exceptions;
- using Minio;
- namespace GxPress.Common.Tools
- {
- /// <summary>
- /// 迷你IQ读写
- /// </summary>
- public class MinIOHelper
- {
- private const string EndPoint = "192.168.0.112:9000";
- private const string AccessKey = "5RLR47A3A8RV72VPBNLQ";
- private const string SecretKey = "FEss1GPMP7ifDPENRFflntSUpQcMB59wpTDwfa4F";
- private const string Location = "us-east-1";
- private static MinioClient _io;
- public MinIOHelper()
- {
- if (_io == null)
- {
- _io = new MinioClient(EndPoint, AccessKey, SecretKey);
- }
- }
- /// <summary>
- /// 创建存储文件
- /// </summary>
- /// <param name="bucketName"></param>
- /// <returns></returns>
- public async Task<bool> MakeBucketAsync(string bucketName)
- {
- var found = await _io.BucketExistsAsync(bucketName);
- if (!found)
- {
- await _io.MakeBucketAsync(bucketName, Location);
- }
- return true;
- }
- /// <summary>
- /// 路径添加
- /// </summary>
- /// <param name="bucketName">库名</param>
- /// <param name="objectName">后缀名称</param>
- /// <param name="filePath">地址</param>
- /// <param name="contentType">类型</param>
- /// <returns></returns>
- public async Task<bool> PutObjectAsync(string bucketName, string objectName, string filePath,
- string contentType)
- {
- try
- {
- if (await MakeBucketAsync(bucketName))
- {
- await _io.PutObjectAsync(bucketName, objectName, filePath, contentType);
- }
- }
- catch (Exception e)
- {
- throw new BusinessException(e.Message);
- }
- return true;
- }
- /// <summary>
- /// 文件流添加
- /// </summary>
- /// <param name="bucketName">库名</param>
- /// <param name="objectName">后缀名称</param>
- /// <param name="data">文件流</param>
- /// <returns></returns>
- public async Task<bool> PutByteObjectAsync(string bucketName, string objectName, Stream data)
- {
- try
- {
- await MakeBucketAsync(bucketName);
- await _io.PutObjectAsync(bucketName, objectName, data, data.Length, "application/octet-stream");
- }
- catch (Exception e)
- {
- throw new BusinessException(e.Message);
- }
- return true;
- }
- }
- }
|