package com.fkzy.warn.controller;


import com.fkzy.warn.common.conf.MinioConfig;
import com.fkzy.warn.common.response.ApiResponse;
import com.fkzy.warn.service.FileService;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
@Api(tags = "文件上传")
@RestController
@Slf4j
@RequestMapping("/file")
public class FileController {

    @Autowired
    MinioConfig minioConfig;

    @Autowired
    FileService fileService;

    /**
     * 上传
     * @param file
     * @return
     * @throws Exception
     */
    @PostMapping("/upload")
    public Object upload(@RequestParam("file") MultipartFile file) throws Exception {
        log.info("附件，上传 ==== 参数{" + file + "}");
        ApiResponse apiResponse = new ApiResponse();
        if (!file.isEmpty()) {
            try {
                apiResponse = fileService.uploadFile(file);

            } catch (Exception e) {
                log.error("附件上传失败,errMsg==={" + e.getMessage() + "}");
                e.printStackTrace();
            }
        } else {
            apiResponse.recordError("请至少上传一个文件！");
        }
        return apiResponse;

    }



//    // 文件访问路径
//    @PostMapping("/getObjectUrl")
//    public String getObjectUrl(String bucketName, String objectName) throws Exception {
//        return this.minioConfig.getObjectUrl(bucketName, objectName);
//    }
//
//
//    // 下载文件
//    @GetMapping("/download")
//    public void download(@RequestParam("fileName") String fileName, HttpServletResponse response) {
//        this.minioConfig.download(fileName, response);
//    }
//
//    // 列出所有存储桶名称
//    @PostMapping("/list")
//    public List<String> list() throws Exception {
//        return this.minioConfig.listBucketNames();
//    }
//
//    // 创建存储桶
//    @PostMapping("/createBucket")
//    public boolean createBucket(String bucketName) throws Exception {
//        return this.minioConfig.makeBucket(bucketName);
//    }
//
//    // 删除存储桶
//    @PostMapping("/deleteBucket")
//    public boolean deleteBucket(String bucketName) throws Exception {
//        return this.minioConfig.removeBucket(bucketName);
//    }
//
//    // 列出存储桶中的所有对象名称
//    @PostMapping("/listObjectNames")
//    public List<String> listObjectNames(String bucketName) throws Exception {
//        return this.minioConfig.listObjectNames(bucketName);
//    }
//
//    // 删除一个对象
//    @PostMapping("/removeObject")
//    public boolean removeObject(String bucketName, String objectName) throws Exception {
//        return this.minioConfig.removeObject(bucketName, objectName);
//    }

}


