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

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)文章

  • JDK線程池和Spring線程池的使用實(shí)例解析

    JDK線程池和Spring線程池的使用實(shí)例解析

    這篇文章主要介紹了JDK線程池和Spring線程池的使用實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • 詳解Java8的forEach(...)如何提供index值

    詳解Java8的forEach(...)如何提供index值

    這篇文章主要介紹了詳解Java8的forEach(...)如何提供index值,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 聊聊為什么要使用BufferedReader讀取File

    聊聊為什么要使用BufferedReader讀取File

    這篇文章主要介紹了為什么要使用BufferedReader讀取File,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Spring Boot應(yīng)用配置常用相關(guān)視圖解析器詳解

    Spring Boot應(yīng)用配置常用相關(guān)視圖解析器詳解

    這篇文章主要給大家介紹了關(guān)于Spring Boot應(yīng)用配置常用相關(guān)視圖解析器的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • 詳解SpringCloud Finchley Gateway 統(tǒng)一異常處理

    詳解SpringCloud Finchley Gateway 統(tǒng)一異常處理

    這篇文章主要介紹了詳解SpringCloud Finchley Gateway 統(tǒng)一異常處理,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2018-10-10
  • Mybatis中注解@MapKey的使用方式

    Mybatis中注解@MapKey的使用方式

    MyBatis使用@MapKey注解進(jìn)行連表查詢,返回一個(gè)Map集合,Map的key為每條記錄的主鍵或指定字段,value為該記錄的字段名稱和字段值
    2024-12-12
  • java?zxing合成復(fù)雜二維碼圖片示例詳解

    java?zxing合成復(fù)雜二維碼圖片示例詳解

    這篇文章主要為大家介紹了java?zxing合成復(fù)雜二維碼圖片示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Java打印數(shù)組的三種方法整理

    Java打印數(shù)組的三種方法整理

    許多學(xué)編程專業(yè)的同學(xué)面試的時(shí)候,考官都會(huì)問(wèn)到Java如何打印數(shù)組這樣的問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于Java打印數(shù)組的三種方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • 淺談SpringMVC中Interceptor和Filter區(qū)別

    淺談SpringMVC中Interceptor和Filter區(qū)別

    這篇文章主要介紹了淺談SpringMVC中Interceptor和Filter區(qū)別,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-04-04
  • springboot 在ftl頁(yè)面上使用shiro標(biāo)簽的實(shí)例代碼

    springboot 在ftl頁(yè)面上使用shiro標(biāo)簽的實(shí)例代碼

    這篇文章主要介紹了springboot 在ftl頁(yè)面上使用shiro標(biāo)簽的實(shí)例代碼,通過(guò)文字說(shuō)明結(jié)合實(shí)例的形式給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2018-05-05

最新評(píng)論