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

java拷貝指定目錄下所有內(nèi)容到minIO代碼實(shí)例

 更新時(shí)間:2024年01月24日 09:22:17   作者:祺稷  
這篇文章主要介紹了java拷貝指定目錄下所有內(nèi)容到minIO代碼實(shí)例,創(chuàng)建桶 直接使用工具類先判斷,再創(chuàng)建即可,創(chuàng)建文件夾,需要注意以"/"結(jié)尾,實(shí)際也是在minIO上創(chuàng)建文件,只是作為目錄的表現(xiàn)形式展示,需要的朋友可以參考下

MinIO及java工具類

minIO知識(shí)及java客戶端內(nèi)容詳情見上篇 MinIO的常用操作示例

本文主要記錄 把指定目錄下全部?jī)?nèi)容遞歸寫入MinIO中。

創(chuàng)建 桶及文件夾

創(chuàng)建桶

直接使用工具類先判斷,再創(chuàng)建即可

創(chuàng)建文件夾

需要注意以“/”結(jié)尾,實(shí)際也是在minIO上創(chuàng)建文件,只是作為目錄的表現(xiàn)形式展示。

代碼如下:

List<AITrainVOutputConfigPO> outList = versionPO.getOutputList();
        String bucketName = null;
        String trainNameVersion = null;
        if (!outList.isEmpty()) {
            bucketName = Constants.AI_TRAIN_BUCKET_NAME;
            if (!minIOUtil.bucketExists(bucketName) && !minIOUtil.makeBucket(bucketName)) {
                return AIPRet.<String>builder().success(false).message("創(chuàng)建桶失??!").build();
            }
            //以每個(gè)訓(xùn)練每個(gè)版本 創(chuàng)建一個(gè)文件夾 文件夾必須以 / 結(jié)尾
            trainNameVersion = versionPO.getTrainName() + "-" + versionPO.getVersionNo() + "/";
            if (!minIOUtil.listObjects(bucketName, trainNameVersion).iterator().hasNext()
                    && !minIOUtil.mkdir(bucketName, trainNameVersion)) {
                return AIPRet.<String>builder().success(false).message("創(chuàng)建文件夾" + trainNameVersion + "失敗!").build();
            }
        }

指定目錄下所有文件拷貝到MinIO

把指定目錄下所有文件及子目錄及其下所有文件拷貝到MinIO上。代碼如下:

調(diào)用代碼:

		for (AITrainVOutputConfigPO out : outList) {
            String outUrl = out.getTrainUrl();
            if (!this.writeFilesToMinIO(outUrl, bucketName, trainNameVersion)) {
                return AIPRet.<String>builder().success(false).message("導(dǎo)出文件目錄" + outUrl + "失?。?).build();
            }
        }

writeFilesToMinIO 寫入MinIO方法 注意:這里判斷目錄還是文件,如果是目錄,進(jìn)行遞歸調(diào)用。

/**
     *
     * @param dir 待拷貝的目錄
     * @param bucketName minIO的桶名稱
     * @param path minIO上的路徑名稱
     * @return 寫到minIO是否成功
*/
private boolean writeFilesToMinIO(String dir, String bucketName, String path) {
        boolean flag = true;
        File file = Paths.get(dir).toFile();
        File[] files = file.listFiles();
        try {
            assert files != null;
            for (File f : files) {
                log.info("文件路徑:" + f.getPath());
                log.info("文件名稱:" + f.getName());
                if (f.isDirectory()) {
                    minIOUtil.mkdir(bucketName, path + f.getName() + "/");
                    writeFilesToMinIO(f.getPath(), bucketName, path + f.getName() + "/");
                } else {
                    try (InputStream inputStream = Files.newInputStream(f.toPath())) {
                        minIOUtil.putObject(bucketName, path + f.getName(), inputStream);
                    }
                }
            }
        } catch (Exception ex) {
            flag = false;
            log.error("寫入MinIO異常", ex);
        }
        return flag;
    }

到此這篇關(guān)于java拷貝指定目錄下所有內(nèi)容到minIO代碼實(shí)例的文章就介紹到這了,更多相關(guān)java拷貝內(nèi)容到minIO內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mybatis-Plus3.2.0 MetaObjectHandler 無法進(jìn)行公共字段全局填充

    Mybatis-Plus3.2.0 MetaObjectHandler 無法進(jìn)行公共字段全局填充

    這篇文章主要介紹了Mybatis-Plus3.2.0 MetaObjectHandler 無法進(jìn)行公共字段全局填充,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • SpringMVC HttpMessageConverter消息轉(zhuǎn)換器

    SpringMVC HttpMessageConverter消息轉(zhuǎn)換器

    ??HttpMessageConverter???,報(bào)文信息轉(zhuǎn)換器,將請(qǐng)求報(bào)文轉(zhuǎn)換為Java對(duì)象,或?qū)ava對(duì)象轉(zhuǎn)換為響應(yīng)報(bào)文。???HttpMessageConverter???提供了兩個(gè)注解和兩個(gè)類型:??@RequestBody,@ResponseBody???,??RequestEntity,ResponseEntity??
    2023-04-04
  • 淺談Java隨機(jī)數(shù)的原理、偽隨機(jī)和優(yōu)化

    淺談Java隨機(jī)數(shù)的原理、偽隨機(jī)和優(yōu)化

    這篇文章主要介紹了淺談Java隨機(jī)數(shù)的原理、偽隨機(jī)和優(yōu)化,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01
  • spring初始化源碼代碼淺析

    spring初始化源碼代碼淺析

    Spring框架被廣泛應(yīng)用于我們的日常工作中,但是很長(zhǎng)時(shí)間以來我們都是只會(huì)使用,不懂它的作用原理,下面這篇文章主要給大家介紹了關(guān)于spring初始化源碼的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • mac系統(tǒng)啟動(dòng)spring項(xiàng)目報(bào)錯(cuò)的問題及解決方案

    mac系統(tǒng)啟動(dòng)spring項(xiàng)目報(bào)錯(cuò)的問題及解決方案

    這篇文章主要介紹了mac系統(tǒng)啟動(dòng)spring項(xiàng)目報(bào)錯(cuò)的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2026-03-03
  • Json傳輸出現(xiàn)中文亂碼問題的解決辦法

    Json傳輸出現(xiàn)中文亂碼問題的解決辦法

    最近遇到一個(gè)問題,就是將中文消息以json格式推給微信服務(wù)器時(shí),收到的消息是亂碼,所以下面這篇文章主要給大家介紹了關(guān)于Json傳輸出現(xiàn)中文亂碼問題的解決辦法,需要的朋友可以參考下
    2023-05-05
  • IDEA中Mybatis的xml文件報(bào)錯(cuò)問題及解決

    IDEA中Mybatis的xml文件報(bào)錯(cuò)問題及解決

    在IntelliJ IDEA中,MyBatis的XML文件報(bào)錯(cuò),提示'expected statement, got 'id'',通過找到并修改LanguageInjections的Mybatis相關(guān)配置,去掉最前面的sql前綴,禁用默認(rèn)配置文件,解決了每次重啟IDEA后配置失效的問題
    2025-12-12
  • Spring AOP底層源碼詳解

    Spring AOP底層源碼詳解

    這篇文章主要介紹了Spring AOP底層源碼詳解,幫助大家更好的理解和學(xué)習(xí)使用Spring AOP,感興趣的朋友可以了解下
    2021-03-03
  • java導(dǎo)出Excel通用方法的實(shí)例詳解

    java導(dǎo)出Excel通用方法的實(shí)例詳解

    這篇文章主要介紹了java導(dǎo)出Excel通用方法的實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • Java番外雜談之每天掃的二維碼你了解它內(nèi)含的信息嗎

    Java番外雜談之每天掃的二維碼你了解它內(nèi)含的信息嗎

    二維碼已經(jīng)成為我們?nèi)粘I钪斜夭豢缮俚慕M成部分了,登錄需要掃一掃二維碼、買東西付錢需要掃一掃二維碼、開會(huì)簽到也需要掃一掃二維碼,那么如此使用的二維碼技術(shù),背后的原理是怎樣的呢?本文將結(jié)合二維碼的發(fā)展歷程以及典型應(yīng)用場(chǎng)景,分析二維碼背后的技術(shù)原理
    2022-02-02

最新評(píng)論

恩平市| 梁平县| 南安市| 乐都县| 冷水江市| 衡阳县| 江阴市| 田阳县| 台南市| 昌邑市| 涞源县| 讷河市| 东明县| 沐川县| 双柏县| 理塘县| 丰都县| 郎溪县| 大宁县| 普兰店市| 登封市| 太保市| 浪卡子县| 盐山县| 阜康市| 犍为县| 宜都市| 德惠市| 兴安县| 天长市| 正镶白旗| 镇沅| 宕昌县| 临邑县| 南开区| 陆丰市| 溧水县| 黄山市| 福建省| 丰城市| 莲花县|