content: package com.jiron.file.service;
  
  import java.io.InputStream;
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.stereotype.Service;
  import org.springframework.web.multipart.MultipartFile;
  import com.alibaba.nacos.common.utils.IoUtils;
  import com.jiron.file.config.MinioConfig;
  import com.jiron.file.utils.FileUploadUtils;
  import io.minio.MinioClient;
  import io.minio.PutObjectArgs;
  
  /**
   * Minio 文件存储
   *
   * @author ruoyi
   */
  @Service
  public class MinioSysFileServiceImpl implements ISysFileService
  {
      @Autowired
      private MinioConfig minioConfig;
  
      @Autowired
      private MinioClient client;
  
      /**
       * Minio文件上传接口
       *
       * @param file 上传的文件
       * @return 访问地址
       * @throws Exception
       */
      @Override
      public String uploadFile(MultipartFile file) throws Exception
      {
          String fileName = FileUploadUtils.extractFilename(file);
          InputStream inputStream = file.getInputStream();
          PutObjectArgs args = PutObjectArgs.builder()
                  .bucket(minioConfig.getBucketName())
                  .object(fileName)
                  .stream(inputStream, file.getSize(), -1)
                  .contentType(file.getContentType())
                  .build();
          client.putObject(args);
          IoUtils.closeQuietly(inputStream);
          return minioConfig.getUrl() + "/" + minioConfig.getBucketName() + "/" + fileName;
      }
  }
  