亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

需求:工作中,在微信小程序播放時(shí),返回文件流并不能有效的使用,前端需要一個(gè)可以訪問(wèn)的地址,springboot默認(rèn)是有資源攔截器的,但是不適合生產(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"

開(kāi)啟linux防火墻

centos開(kāi)啟防火墻

開(kāi)啟端口

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

重啟防火墻

sudo firewall-cmd --reload

打開(kāi)瀏覽器訪問(wèn) ip:9001

看到此頁(yè)面即為成功

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);
        }
    }
}

 測(cè)試類:

@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) {
    }
}

遇到的一些問(wèn)題  運(yùn)行springboot的測(cè)試類沒(méi)有上傳,debug之后顯示s3 api requests must be made to api port.

解決方案:

進(jìn)入docker

docker exec -it minio bash

進(jìn)入后,查看信息

mc config host ls

找到自己的服務(wù),我的為localhost,查看下方的url等信息均不對(duì),移除當(dāng)前服務(wù)

mc config host remove 服務(wù)名

添加新的服務(wù),注意url信息,注意端口

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

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

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

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

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

相關(guān)文章

  • chatgpt-web之docker打包流程

    chatgpt-web之docker打包流程

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

    解決使用Docker Compose管理容器的問(wèn)題

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

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

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

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

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

    Docker掛載的三種方法及使用場(chǎng)景分析

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

    通過(guò)docker容器搭建lamp架構(gòu)的流程

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

    Docker跨主機(jī)網(wǎng)絡(luò)(overlay)的實(shí)現(xiàn)

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

    dockerfile介紹與使用小結(jié)

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

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

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

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

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

最新評(píng)論