123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- package com.tofly.controller;
- import com.tofly.client.MinioFileClient;
- import com.tofly.client.MinioFileUploadClient;
- import com.tofly.common.core.result.ResultData;
- import com.tofly.vo.FileInfo;
- import com.tofly.vo.FileUploadResponse;
- import feign.Response;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.http.HttpHeaders;
- import org.springframework.http.MediaType;
- import org.springframework.http.ResponseEntity;
- import org.springframework.web.bind.annotation.*;
- import org.springframework.web.multipart.MultipartFile;
- import javax.servlet.http.HttpServletResponse;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.util.List;
- @RestController
- @RequestMapping("testupload")
- public class TestController {
- @Autowired
- private MinioFileClient minioFileClient;
- @RequestMapping("/getFile")
- public ResultData test2(){
- final FileInfo byFileId = minioFileClient.getByFileId("1");
- return new ResultData().ok(byFileId);
- }
- @PostMapping("/uploadFile")
- public ResultData test3(@RequestPart("file") MultipartFile file){
- final FileUploadResponse test = minioFileClient.uploadFile(file);
- return new ResultData().ok(test);
- }
- @PostMapping("/uploadZip")
- public ResultData testuploadzip(@RequestPart("file") MultipartFile file){
- final ResponseEntity<List<FileInfo>> listResponseEntity = minioFileClient.uploadZip( file);
- return new ResultData().ok(listResponseEntity.getBody());
- }
- @GetMapping("/downZip")
- public void testDownloadzip(String[] fileNames, HttpServletResponse response){
- final ResponseEntity<byte[]> responseEntity = minioFileClient.downloadZip(fileNames);
- final byte[] zipContent = responseEntity.getBody();
- if (zipContent != null) {
- response.setStatus(HttpServletResponse.SC_OK);
- response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=downloaded_files.zip");
- response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
- response.setContentLength(zipContent.length);
- try {
- response.getOutputStream().write(zipContent);
- response.getOutputStream().flush();
- } catch (IOException e) {
- e.printStackTrace();
- response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- }
- } else {
- response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- }
- }
- @GetMapping("/getFileInfo")
- public ResultData test3(String fileName){
- final FileInfo fileInfo = minioFileClient.getFileInfo(fileName);
- return new ResultData().ok(fileInfo);
- }
- @GetMapping("/download")
- public void test3(String fileName, HttpServletResponse response){
- Response feignResponse = minioFileClient.download(fileName);
- response.setContentType("application/octet-stream");
- response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
- try (InputStream inputStream = feignResponse.body().asInputStream();
- OutputStream outputStream = response.getOutputStream()) {
- byte[] buffer = new byte[8192];
- int bytesRead;
- while ((bytesRead = inputStream.read(buffer)) != -1) {
- outputStream.write(buffer, 0, bytesRead);
- }
- } catch (IOException e) {
- e.printStackTrace();
-
- }
- }
- }
|