import brave.Tracer;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.xiaomi.commonbase.*;
import io.minio.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
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;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@RestController
@RequestMapping("/common-manager")
public class MinioFileUploadController {
private static Logger logger = LoggerFactory.getLogger(MinioFileUploadController.class);
private RedisUtil redisUtil = SpringConfig.getBean(RedisUtil.class);
public static SimpleDateFormat sdf = new SimpleDateFormat(DateUtil.yyyy_MM_dd_HH_mm_ss);
@Value("${minio.bucket_name}")
private String bucketName;
@Value("${minio.end_point}")
private String endPoint;
@Autowired
private MinioClient minioClient;
@Autowired
Tracer tracer;
@RequestMapping("/upload")
public RspBean upload(@RequestParam(value="media") MultipartFile[] media) throws Exception{
// 判断文件是否为空
if (media==null || media.length==0){
return new RspBean(RspCodeEnum.FAIL,"上传文件不能为空",tracer.currentSpan().context().traceIdString(),"fail");
}
// 判断桶是否存在,不存在则创建
if (!minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build())){
minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());
}
List
import io.minio.MinioClient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MinioConfigs {
@Value("${minio.end_point}")
private String endPoint;
@Value("${minio.access_key}")
private String accessKey;
@Value("${minio.secret_key}")
private String secretKey;
@Bean
public MinioClient minioClient(){
MinioClient build = MinioClient.builder().endpoint(endPoint).credentials(accessKey,secretKey).build();
return build;
}
}