package com.file.server.controller;
import io.minio.MinioClient;
import org.apache.tomcat.util.http.fileupload.IOUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
@RestController
public
class
MinioController {
private
static
String url =
"http://127.0.0.1:9000"
; //minio服务的IP端口
private
static
String accessKey =
"W2ZWITFFDWFM5TWS3WI9"
;
private
static
String secretKey =
"dNx++XsRJpjmWVQHWv8djMCFJ0A3YXbEr4qfKHR+"
;
@PostMapping(
"upload"
)
public
String upload(@RequestParam(
"fileName"
) MultipartFile file ) {
try
{
MinioClient minioClient =
new
MinioClient(url, accessKey, secretKey);
InputStream is= file.getInputStream();
String fileName = file.getOriginalFilename();
String contentType = file.getContentType();
minioClient.putObject(
"file"
,fileName,is,contentType);
return
"上传成功"
;
}
catch
(Exception e){
return
"上传失败"
;
}
}
@GetMapping(
"download"
)
public
String download(HttpServletResponse response){
try
{
MinioClient minioClient =
new
MinioClient(url, accessKey, secretKey);
InputStream fileInputStream = minioClient.getObject(
"file"
,
"test.jpg"
);
response.setHeader(
"Content-Disposition"
,
"attachment;filename="
+
"test.jpg"
);
response.setContentType(
"application/force-download"
);
response.setCharacterEncoding(
"UTF-8"
);
IOUtils.
copy
(fileInputStream,response.getOutputStream());
return
"下载完成"
;
}
catch
(Exception e){
return
"下载失败"
;
}
}
@GetMapping(
"url"
)
public
String getUrl(){
try
{
MinioClient minioClient =
new
MinioClient(url, accessKey, secretKey);
String url = minioClient.presignedGetObject(
"file"
,
"test.jpg"
);
return
url;
}
catch
(Exception e){
return
"获取失败"
;
}
}
}