//package com.ruoyi.file.controller;
//
//import com.ruoyi.common.core.domain.R;
//import com.ruoyi.common.core.utils.file.FileUtils;
//import com.ruoyi.common.core.web.domain.AjaxResult;
//import com.ruoyi.file.service.MinioSysFileServiceImpl;
//import com.ruoyi.system.api.domain.SysFile;
//import io.minio.messages.DeleteObject;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.bind.annotation.*;
//import org.springframework.web.multipart.MultipartFile;
//
//import java.io.InputStream;
//import java.util.LinkedList;
//import java.util.List;
//
///**
// * 文件请求处理
// *
// * @author ruoyi
// */
//@RestController
//public class SysFileController
//{
//    private static final Logger log = LoggerFactory.getLogger(SysFileController.class);
//
//    @Autowired
//    private MinioSysFileServiceImpl sysFileService;
//
//    /**
//     * 文件上传请求
//     */
//    @PostMapping("upload")
//    public R<SysFile> upload(MultipartFile file)
//    {
//        try
//        {
//            // 上传并返回访问地址
//            String url = sysFileService.uploadFile(file);
//            SysFile sysFile = new SysFile();
//            sysFile.setName(FileUtils.getName(url));
//            sysFile.setUrl(url);
//            return R.ok(sysFile);
//        }
//        catch (Exception e)
//        {
//            log.error("上传文件失败", e);
//            return R.fail(e.getMessage());
//        }
//    }
//
//    @GetMapping("/download/{filename}")
//    public InputStream downloadFile(@PathVariable String filename) {
//        return sysFileService.downloadFile(filename);
//    }
//
//    @DeleteMapping("/delete/{filename}")
//    public AjaxResult deleteFile(@PathVariable String filename) {
//        return sysFileService.deleteFile(filename);
//    }
//
//    @DeleteMapping("/batchDelete/{filenames}")
//    public AjaxResult deleteFiles(@PathVariable List<String> filenames) {
//        List<DeleteObject> deleteObjectList = new LinkedList<>();
//        for (String filename : filenames) {
//            deleteObjectList.add(new DeleteObject(filename));
//        }
//        return sysFileService.deleteFiles(deleteObjectList);
//    }
//
//
//}