最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Springboot集成Minio實現(xiàn)文件上傳基本步驟

 更新時間:2025年06月18日 11:02:27   作者:choice of  
這篇文章主要介紹了Springboot集成Minio實現(xiàn)文件上傳基本步驟,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧

一 需要用到的有關Minio的核心概念

  • 存儲桶(Bucket):類似于文件系統(tǒng)中的頂級目錄,需提前創(chuàng)建。
  • 對象(Object):存儲在 MinIO 中的文件,每個對象有唯一的鍵(Key)。
  • 預簽名 URL:臨時授權的 URL,可控制訪問權限和有效期。

二 Springboot集成Minio基本步驟

1 添加相關依賴

        <dependency>
            <groupId>io.minio</groupId>
            <artifactId>minio</artifactId>
            <version>8.2.1</version>
            <exclusions>
                <exclusion>
                    <groupId>com.squareup.okhttp3</groupId>
                    <artifactId>okhttp</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.jetbrains.kotlin</groupId>
                    <artifactId>kotlin-stdlib</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
            <version>4.9.0</version>
        </dependency>

2 配置Minio的連接信息

在application.yml中添加配置:

yaml
minio:
  endpoint: http://localhost:9000  # MinIO服務地址
  access-key: your-access-key        # 訪問密鑰
  secret-key: your-secret-key        # 秘密密鑰
  bucket-name: your-bucket-name      # 默認存儲桶名稱

3 創(chuàng)建Minio的配置類

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 MinIOConfig {
    @Value("${minio.endpoint}")
    private String endpoint;
    @Value("${minio.access-key}")
    private String accessKey;
    @Value("${minio.secret-key}")
    private String secretKey;
    @Bean
    public MinioClient minioClient() {
        return MinioClient.builder()
                .endpoint(endpoint)
                .credentials(accessKey, secretKey)
                .build();
    }
}

4 (服務層)創(chuàng)建Minio的服務類

主要實現(xiàn)文件上傳,下載操作

public String upload(MultipartFile file) throws Exception {
        // 檢查存儲桶是否存在,不存在則創(chuàng)建
        boolean isExist = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());
        if (!isExist) {
            minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());
        }
    // 生成唯一文件名,避免中文和空格
        String originalFilename = file.getOriginalFilename();
        String fileName = UUID.randomUUID().toString() + "." +
                originalFilename.substring(originalFilename.lastIndexOf(".") + 1);
        // 1. 上傳文件到MinIO
        minioClient.putObject(
                PutObjectArgs.builder()
                        .bucket(bucketName)
                        .object(fileName)
                        .stream(file.getInputStream(), file.getSize(), -1)
                        .contentType(file.getContentType())
                        .build()
        );
        return  url + "/" + bucketName + "/" + fileName;
    }

5 (表現(xiàn)層)創(chuàng)建控制器

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
@RestController
public class FileUploadController {
    @Autowired
    private MinioServiceImpl minioService;

到此這篇關于Springboot集成Minio實現(xiàn)文件上傳的文章就介紹到這了,更多相關Springboot Minio文件上傳內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 全面了解Java中Native關鍵字的作用

    全面了解Java中Native關鍵字的作用

    下面小編就為大家?guī)硪黄媪私釰ava中Native關鍵字的作用。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • 詳解Java去除json數(shù)據(jù)中的null空值問題

    詳解Java去除json數(shù)據(jù)中的null空值問題

    這篇文章主要介紹了詳解Java去除json數(shù)據(jù)中的null空值問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • Java實現(xiàn)驗證碼驗證功能

    Java實現(xiàn)驗證碼驗證功能

    Java如何實現(xiàn)驗證碼驗證功能呢?日常生活中,驗證碼隨處可見,他可以在一定程度上保護賬號安全,那么他是怎么實現(xiàn)的呢?今天通過本文給大家實例詳解,需要的朋友參考下
    2017-02-02
  • java設計模式之觀察者模式簡單解讀

    java設計模式之觀察者模式簡單解讀

    這篇文章主要介紹了java設計模式之觀察者模式簡單解讀,觀察者模式是在對象之間定義了一對多的依賴,這樣一來,當一個對象改變狀態(tài),依賴它的對象會收到通知并自動更新,需要的朋友可以參考下
    2023-10-10
  • java進行數(shù)據(jù)的比較的實例方法

    java進行數(shù)據(jù)的比較的實例方法

    在本篇文章里小編給大家整理的是一篇關于java進行數(shù)據(jù)的比較的實例方法,有需要的朋友們可以學習下。
    2021-04-04
  • 在Java中創(chuàng)建對話框的最佳實戰(zhàn)指南

    在Java中創(chuàng)建對話框的最佳實戰(zhàn)指南

    對話框是用于向用戶顯示信息(如錯誤提示、輸入請求)的圖形組件,通常作為Java GUI應用的頂級容器存在,本文給大家分享了在Java中創(chuàng)建對話框的最佳實戰(zhàn)指南,需要的朋友可以參考下
    2025-06-06
  • Java中Future接口詳解

    Java中Future接口詳解

    這篇文章主要介紹了Java中Future接口詳解,本文通過案例給大家詳細講解了Java中Future接口,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • SpringBoot全局配置long轉String丟失精度問題解決方案

    SpringBoot全局配置long轉String丟失精度問題解決方案

    這篇文章主要介紹了SpringBoot全局配置long轉String丟失精度問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • java web實現(xiàn)簡單聊天室

    java web實現(xiàn)簡單聊天室

    這篇文章主要為大家詳細介紹了java-web實現(xiàn)簡單聊天室,含拍一拍功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • idea開啟熱部署Devtools的步驟詳解

    idea開啟熱部署Devtools的步驟詳解

    當我們在 idea 中修改代碼的時候,idea 并不會自動的重啟去響應我們修改的內容,而是需要我們手動的重新啟動項目才可以生效,這個是非常不方便,但是可以在 idea 中開啟這個自動熱部署的功能,本文給大家介紹了idea開啟熱部署Devtools的步驟,需要的朋友可以參考下
    2024-03-03

最新評論

汪清县| 福安市| 德令哈市| 广安市| 苏尼特右旗| 丹棱县| 开远市| 兴隆县| 英超| 镇沅| 龙陵县| 崇左市| 四川省| 宝兴县| 永春县| 濉溪县| 扎赉特旗| 大名县| 会泽县| 罗江县| 宜昌市| 宝山区| 敦煌市| 南靖县| 交城县| 镇巴县| 东台市| 德钦县| 盘山县| 邛崃市| 泽州县| 仙桃市| 和政县| 宝应县| 韶关市| 离岛区| 无棣县| 尉犁县| 巴林右旗| 长泰县| 永德县|