欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

docker部署minio并使用springboot連接的操作方法

 更新時間:2023年11月02日 10:41:39   作者:[奸笑]這個不是斜眼笑[奸笑]  
這篇文章主要介紹了docker部署minio并使用springboot連接的操作方法,本文以minio為例結合實例代碼給大家詳細講解,需要的朋友可以參考下

需求:工作中,在微信小程序播放時,返回文件流并不能有效的使用,前端需要一個可以訪問的地址,springboot默認是有資源攔截器的,但是不適合生產(chǎn)環(huán)境的使用

可以提供使用的有例如fastdfs或者minio,這里以minio為例

環(huán)境

軟件版本
docker24.0.4
minioRELEASE.2023-10-24T05-18-28Z (commit-id=97cc12fdc539361cf175ffc2f00480eec0836d82)

minio安裝

docker命令

docker run -d \
-p 9000:9000 \
-p 9001:9001 \
--name minio 
--restart=always 
--privileged=true \
-v /home/minio/data:/data \
-e "MINIO_ROOT_USER=user" \
-e "MINIO_ROOT_PASSWORD=password" \
minio/minio server /data 
--console-address ":9001"

開啟linux防火墻

centos開啟防火墻

開啟端口

sudo firewall-cmd --zone=public --add-port=6379/tcp --permanent

重啟防火墻

sudo firewall-cmd --reload

打開瀏覽器訪問 ip:9001

看到此頁面即為成功

springboot整合minio

pom.xml

<dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>4.9.0</version>
</dependency>
<dependency>
    <groupId>io.minio</groupId>
    <artifactId>minio</artifactId>
    <version>8.5.6</version>
    <exclusions>
        <exclusion>
            <artifactId>okhttp</artifactId>
            <groupId>com.squareup.okhttp3</groupId>
        </exclusion>
    </exclusions>
</dependency>

 配置類

@Configuration
public class MinioConfig {
    @Value("${minio.endpoint}")
    private String endpoint;
    @Value("${minio.accessKey}")
    private String accessKey;
    @Value("${minio.secretKey}")
    private String secretKey;
    @Bean
    public MinioClient minioClient(){
        return
                MinioClient.builder()
                        .endpoint(endpoint)
                        .credentials(accessKey, secretKey)
                        .build();
    }
}

文件上傳的工具類

@Slf4j
public class MinioUtils {
    public static String uploadFile(MinioClient minioClient, InputStream inputStream, String bucket, String filename) {
        try {
            boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket("public").build());
            if (!found) {
                minioClient.makeBucket(MakeBucketArgs.builder().bucket("public").build());
            }
            ObjectWriteResponse response = minioClient.putObject(
                    PutObjectArgs
                            .builder()
                            .bucket(bucket)
                            .object(filename)
                            .stream(inputStream, inputStream.available(), -1)
                            .contentType(InferStatusConstant.WAV_CONTENT_TYPE)
                            .build()
            );
            String url = minioClient.getPresignedObjectUrl(GetPresignedObjectUrlArgs.builder()
                            .bucket(bucket)
                            .expiry(7 * 24 * 60 * 60)
                            .object(filename)
                            .method(Method.GET)
                            .build());
            log.info("分享地址:" + url);
            return url;
        } catch (ErrorResponseException | InsufficientDataException | InternalException | InvalidKeyException |
                 InvalidResponseException | IOException | NoSuchAlgorithmException | ServerException |
                 XmlParserException e) {
            throw new RuntimeException(e);
        }
    }
}

 測試類:

@Test
public void uploadFileToMinio() {
    try (FileInputStream stream = new FileInputStream("/path/to/file")) {
        String url = MinioUtils.uploadFile(minioClient, stream, "test", "/test/test1.wav");
        System.out.println(url);
    } catch (Exception e) {
    }
}

遇到的一些問題  運行springboot的測試類沒有上傳,debug之后顯示s3 api requests must be made to api port.

解決方案:

進入docker

docker exec -it minio bash

進入后,查看信息

mc config host ls

找到自己的服務,我的為localhost,查看下方的url等信息均不對,移除當前服務

mc config host remove 服務名

添加新的服務,注意url信息,注意端口

mc config host add 服務名 http://IP:9000 user password --api S3v4

不需要重啟,重新運行測試代碼,發(fā)現(xiàn)運行成功

在使用的過程中生成分享連接為127.0.0.1/XXXXXXX

解決方案同上,修改自己的ip

到此這篇關于docker部署minio并使用springboot連接的文章就介紹到這了,更多相關docker部署minio內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • chatgpt-web之docker打包流程

    chatgpt-web之docker打包流程

    這篇文章主要介紹了chatgpt-web中docker的打包流程,文中有詳細的代碼示例,對學習或工作有一定的幫助,需要的朋友可以參考下
    2023-05-05
  • 解決使用Docker Compose管理容器的問題

    解決使用Docker Compose管理容器的問題

    在Docker Compose中,根據(jù)一個配置文件,將所有與應用系統(tǒng)相關的應用和對應的容器進行配置,再根據(jù)Docker Compose提供的命令進行啟動,就可以解決上面說的多容器之間的復雜問題,感興趣的朋友跟隨小編一起看看吧
    2021-09-09
  • Windows10系統(tǒng)下docker安裝指南以及踩坑解決

    Windows10系統(tǒng)下docker安裝指南以及踩坑解決

    這篇文章主要給大家介紹了關于Windows10系統(tǒng)下docker安裝指南以及踩坑解決的相關資料,相信大家都知道Docker有很多種安裝的選擇,其中支持最好的是Ubuntu系統(tǒng),而且docker如果想在windows上運行必須借助docker-machine,需要的朋友可以參考下
    2023-08-08
  • 詳解基于docker 如何部署surging分布式微服務引擎

    詳解基于docker 如何部署surging分布式微服務引擎

    這篇文章主要介紹了詳解基于docker 如何部署surging分布式微服務引擎,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • Docker掛載的三種方法及使用場景分析

    Docker掛載的三種方法及使用場景分析

    在Docker容器中,持久化存儲和數(shù)據(jù)共享是非常重要的功能,Docker提供了三種主要的方法來實現(xiàn)宿主機和容器之間的數(shù)據(jù)掛載,本文將詳細介紹這三種方法的基本語法,并探討它們各自的使用場景,需要的朋友可以參考下
    2024-05-05
  • 通過docker容器搭建lamp架構的流程

    通過docker容器搭建lamp架構的流程

    這篇文章主要介紹了dcoker容器搭建lamp架構,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • Docker跨主機網(wǎng)絡(overlay)的實現(xiàn)

    Docker跨主機網(wǎng)絡(overlay)的實現(xiàn)

    這篇文章主要介紹了Docker跨主機網(wǎng)絡(overlay)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • dockerfile介紹與使用小結

    dockerfile介紹與使用小結

    Dockerfile是一個創(chuàng)建鏡像所有命令的文本文件, 包含了一條條指令和說明, 只需要在Dockerfile上添加或者修改指令, 就可生成 docker 鏡像,本文給大家介紹dockerfile介紹與使用小結,感興趣的朋友一起看看吧
    2023-11-11
  • Docker容器的網(wǎng)絡管理和網(wǎng)絡隔離的實現(xiàn)

    Docker容器的網(wǎng)絡管理和網(wǎng)絡隔離的實現(xiàn)

    這篇文章主要介紹了Docker容器的網(wǎng)絡管理和網(wǎng)絡隔離的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • 基于docker搭建redis-sentinel集群的方法示例

    基于docker搭建redis-sentinel集群的方法示例

    這篇文章主要介紹了基于docker搭建redis-sentinel集群的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-06-06

最新評論