做配音任務的網站百度搜索推廣費用
目錄
配置Minio環(huán)境?
?一、下載minio.exe?mc.exe
?二、設置用戶名和密碼
用管理員模式打開cmd
三、啟動Minio服務器
四、訪問WebUI給的地址
SpringBoot整合Minio
一、配置依賴,application.yml
二、代碼部分
FileVO
MinioConfig
MinioUploadService
MinioController
三、Postman測試
配置Minio環(huán)境?
?一、下載minio.exe?mc.exe
下載地址:https://min.io/download?license=agpl&platform=windows#/windows
記住下面這個圖,重要的步驟都在這張圖里面?
?二、設置用戶名和密碼
用管理員模式打開cmd
然后進入到 minio.exe 所在的目錄
?
再來回顧剛開始的這張圖 ,現(xiàn)在來設置用戶名和密碼
?
這里的 admin和password可以自定義
setx MINIO_ROOT_USER admin
setx MINIO_ROOT_PASSWORD password
?
設置完成之后可以在環(huán)境變量看見剛剛設置的值
?
三、啟動Minio服務器
現(xiàn)在用命令打開服務器,官網使用powershell,如果你也是用的powershell直接cv下來運行
C:\minio.exe server F:\Data --console-address ":9001"
記得修改路徑為自己本地路徑
這里我用的是cmd.exe,命令是:
.\minio.exe server D:\WorkSpaces\Minio\data --console-address "127.0.0.1:9000" --address "127.0.0.1:9001"
?因為放在代碼塊里會壓縮,這里同時拿出來給各位看一下
.\minio.exe? server? D:\WorkSpaces\Minio\data --console-address "127.0.0.1:9000" --address "127.0.0.1:9001"?
?三個色塊分別代表的是
①服務器存儲的位置??D:\WorkSpaces\Minio\data?
②服務端的端口? ? --console-address "127.0.0.1:9000"
③控制臺端口??--address "127.0.0.1:9001"?
啟動成功之后如上圖所示
四、訪問WebUI給的地址
http://127.0.0.1:9000
?
輸入WebUI下面給的用戶名密碼登錄
這個Bucket可以理解成是一個倉庫,或者說是一個文件夾?
自此,Minio的環(huán)境就搭建好了
注意:
停止服務在用? Ctrl+C
下次minio啟動服務的命令依舊這個
接下來就是將minio與SpringBoot整合
SpringBoot整合Minio
這里我單獨創(chuàng)建了一個minio-test項目
一、配置依賴,application.yml
server:port: 8080spring:# 配置文件上傳大小限制servlet:multipart:max-file-size: 50MBmax-request-size: 50MBminio:config:access-key: odyssey # 用戶賬號secret-key: 88888888 # 密碼secure: false #如果是true,則用的是https而不是http,默認值是truebucketName: "test2" # 桶的名字 相當于文件夾url: http://127.0.0.1:9001
二、代碼部分
FileVO
@Data
public class FileVO {private String url;private String fileName;private Long size;private String extname;
}
MinioConfig
@Data
@Configuration
@ConfigurationProperties(prefix = "minio.config")
public class MinioConfig {/*** 端點*/private String url;/*** 用戶名*/private String accessKey;/*** 密碼*/private String secretKey;/*** 存儲桶名稱*/private String bucketName;@Beanpublic MinioClient getMinioClient() {return MinioClient.builder().endpoint(url).credentials(accessKey, secretKey).build();}
}
MinioUploadService
@Slf4j
@Service
public class MinioUploadService {// 注入minio配置文件@Autowiredprivate MinioConfig minioConfig;// 注入minio client@Autowiredprivate MinioClient client;public FileVO upload(MultipartFile file) throws ServerException {FileVO fileVO = new FileVO();try {// 獲取文件真實名稱String originalFilename = file.getOriginalFilename();// 獲取文件的擴展名 例如.jpg .docString extname = originalFilename.substring(originalFilename.lastIndexOf("."));// 構建文件上傳相關信息PutObjectArgs args = PutObjectArgs.builder().bucket(minioConfig.getBucketName()).object(originalFilename).stream(file.getInputStream(), file.getSize(), -1).contentType(file.getContentType()).build();// 將文件上傳到minio服務器client.putObject(args);log.info("文件上傳成功");// 組裝文件信息,返回前端 或者存入數據路String url = minioConfig.getUrl() + "/" + minioConfig.getBucketName() + "/" + originalFilename;fileVO.setUrl(url);fileVO.setSize(file.getSize());fileVO.setFileName(originalFilename);fileVO.setExtname(extname);} catch (Exception e) {throw new ServerException("文件上傳異常" + e.getCause().toString());}return fileVO;}
}
MinioController
@RestController
@RequestMapping("/file")
public class MinioController {@Autowiredprivate MinioUploadService minioUploadService;@PostMapping("/upload")public FileVO upload(@RequestParam("file") MultipartFile file) throws ServerException {FileVO upload = minioUploadService.upload(file);return upload;}
}
?代碼部分到此結束,記得安裝lombok依賴 導入相應的包~
然后啟動項目,項目正常
三、Postman測試
?文件我自己選擇的是一張圖片,然后點擊Send
測試成功,現(xiàn)在來看看客戶端有沒有這條?2344開頭的jpg文件
?可以在圖中看出已經在test2中顯示了這個文件,至此,教程結束