Java操作minio刪除文件夾及其文件方法(MinIO基本使用)
前言:
因java項(xiàng)目需求,要?jiǎng)h除minio服務(wù)文件夾和下面的所有文件,百度了一下,沒(méi)有查到有用的方法,自己也查看了minio jar包中的方法,也沒(méi)發(fā)現(xiàn)刪除文件夾的,不過(guò),網(wǎng)上百度查到,只要?jiǎng)h除文件夾下的所有文件,文件夾就自動(dòng)刪除了。自己也親自驗(yàn)證,于是有了一個(gè)思路。
教程 :
pom文件所需依賴
<!--minio-->
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>3.0.10</version>
</dependency>主要代碼示例
原理,根據(jù)bucket名稱和文件夾名稱,先用listObjects方法 查出所有匹配的文件列表,然后用removeObject方法循環(huán)刪除。只要匹配文件夾的查出的文件列表全部刪除,文件也會(huì)被刪除,及時(shí)文件夾下還有文件夾也都可以匹配出來(lái),然后刪除。
/**
* 刪除文件夾及文件
*
* @param bucketName bucket名稱
* @param objectName 文件或文件夾名稱
* @since tarzan LIU
*/
private void deleteObject(String bucketName, String objectName) {
try {
if (StringUtils.isNotBlank(objectName)) {
if (objectName.endsWith(".") || objectName.endsWith("/")) {
Iterable<Result<Item>> list = minioClient.listObjects(bucketName, objectName);
list.forEach(e -> {
try {
minioClient.removeObject(bucketName, e.get().objectName());
} catch (InvalidBucketNameException invalidBucketNameException) {
invalidBucketNameException.printStackTrace();
} catch (NoSuchAlgorithmException noSuchAlgorithmException) {
noSuchAlgorithmException.printStackTrace();
} catch (InsufficientDataException insufficientDataException) {
insufficientDataException.printStackTrace();
} catch (IOException ioException) {
ioException.printStackTrace();
} catch (InvalidKeyException invalidKeyException) {
invalidKeyException.printStackTrace();
} catch (NoResponseException noResponseException) {
noResponseException.printStackTrace();
} catch (XmlPullParserException xmlPullParserException) {
xmlPullParserException.printStackTrace();
} catch (ErrorResponseException errorResponseException) {
errorResponseException.printStackTrace();
} catch (InternalException internalException) {
internalException.printStackTrace();
}
});
}
}
} catch (XmlPullParserException e) {
e.printStackTrace();
}
}相關(guān)知識(shí):
MinIO是一個(gè)開(kāi)源的對(duì)象存儲(chǔ)服務(wù)器,它兼容Amazon S3服務(wù)接口,并提供高性能、無(wú)限擴(kuò)展性和強(qiáng)大的功能。在接下來(lái)的3000字內(nèi),我將為您詳細(xì)解釋MinIO的主要特點(diǎn)、用途和基本用法。
MinIO的主要特點(diǎn):
- 高性能:MinIO采用了分布式架構(gòu)和并行處理技術(shù),可以實(shí)現(xiàn)高速的數(shù)據(jù)傳輸和處理,以滿足對(duì)大規(guī)模數(shù)據(jù)的快速訪問(wèn)需求。
- 無(wú)限擴(kuò)展性:MinIO支持水平擴(kuò)展,可以根據(jù)需要增加存儲(chǔ)節(jié)點(diǎn),以實(shí)現(xiàn)無(wú)限的存儲(chǔ)容量和吞吐量。
- 對(duì)象存儲(chǔ):MinIO以對(duì)象的形式存儲(chǔ)數(shù)據(jù),每個(gè)對(duì)象包含數(shù)據(jù)本身、元數(shù)據(jù)和唯一的標(biāo)識(shí)符,可以方便地進(jìn)行檢索和管理。
- 兼容S3接口:MinIO兼容Amazon S3接口,因此可以與現(xiàn)有的S3生態(tài)系統(tǒng)集成,無(wú)縫遷移或替換現(xiàn)有的S3存儲(chǔ)系統(tǒng)。
- 數(shù)據(jù)保護(hù):MinIO提供多副本復(fù)制和糾刪碼編碼等數(shù)據(jù)保護(hù)機(jī)制,確保數(shù)據(jù)的可靠性和可恢復(fù)性。
- 安全性:MinIO支持?jǐn)?shù)據(jù)加密和訪問(wèn)控制,可以通過(guò)SSL/TLS加密數(shù)據(jù)傳輸,并通過(guò)訪問(wèn)策略和身份驗(yàn)證保護(hù)數(shù)據(jù)的安全性。
- 高度可定制化:MinIO提供豐富的配置選項(xiàng)和插件機(jī)制,允許用戶根據(jù)自己的需求進(jìn)行定制和擴(kuò)展。
MinIO的主要用途:
- 對(duì)象存儲(chǔ):MinIO可以用作持久化存儲(chǔ)系統(tǒng),存儲(chǔ)和管理各種類型的對(duì)象數(shù)據(jù),如圖像、視頻、日志文件等。
- 大數(shù)據(jù)分析:MinIO可以與各種大數(shù)據(jù)分析工具(如Hadoop、Spark等)集成,提供高性能的數(shù)據(jù)存儲(chǔ)和處理能力,用于大規(guī)模數(shù)據(jù)分析任務(wù)。
- 文件共享和備份:MinIO可以作為文件共享和備份系統(tǒng),提供簡(jiǎn)單而強(qiáng)大的文件上傳、下載和分享功能。
- 云原生應(yīng)用程序:MinIO適用于構(gòu)建云原生應(yīng)用程序,它可以與Kubernetes等容器編排平臺(tái)集成,實(shí)現(xiàn)彈性伸縮和高可用性。
- 數(shù)據(jù)歸檔和存檔:MinIO支持?jǐn)?shù)據(jù)歸檔和長(zhǎng)期存儲(chǔ),可以將不常訪問(wèn)的數(shù)據(jù)存檔到低成本的存儲(chǔ)介質(zhì)中,以節(jié)省存儲(chǔ)成本。
基本使用方法:
- 安裝和啟動(dòng)MinIO:可以從MinIO官方網(wǎng)站下載預(yù)編譯的二進(jìn)制文件,并按照官方文檔說(shuō)明進(jìn)行安裝和配置。然后使用命令行或控制臺(tái)啟動(dòng)MinIO服務(wù)。
- 配置存儲(chǔ)桶:使用MinIO的客戶端工具(如mc命令行工具)或編程語(yǔ)言中的MinIO SDK來(lái)創(chuàng)建和配置存儲(chǔ)桶,設(shè)置訪問(wèn)權(quán)限、生命周期規(guī)則等。
- 上傳和下載對(duì)象:通過(guò)MinIO的客戶端工具或SDK,可以上傳和下載對(duì)象數(shù)據(jù)到指定的存儲(chǔ)桶,并管理對(duì)象的元數(shù)據(jù)和屬性。
- 訪問(wèn)控制和身份驗(yàn)證:MinIO支持基于策略的訪問(wèn)控制和身份驗(yàn)證,在配置文件中定義訪問(wèn)控制策略,并為用戶分配適當(dāng)?shù)脑L問(wèn)權(quán)限。
- 監(jiān)控和報(bào)警:MinIO提供了監(jiān)控和報(bào)警功能,可以通過(guò)指標(biāo)和日志數(shù)據(jù)來(lái)監(jiān)控存儲(chǔ)系統(tǒng)的性能和健康狀況。
總結(jié):
MinIO是一個(gè)高性能、無(wú)限擴(kuò)展的開(kāi)源對(duì)象存儲(chǔ)服務(wù)器,它以對(duì)象的形式存儲(chǔ)數(shù)據(jù),并兼容Amazon S3接口。它適用于大規(guī)模數(shù)據(jù)存儲(chǔ)、大數(shù)據(jù)分析、文件共享和備份等應(yīng)用場(chǎng)景。通過(guò)簡(jiǎn)單的配置和使用MinIO的客戶端工具或SDK,開(kāi)發(fā)者可以快速搭建起強(qiáng)大的對(duì)象存儲(chǔ)系統(tǒng)。請(qǐng)注意,以上解釋只是對(duì)MinIO的基本介紹,如果您有特定的問(wèn)題或需求,請(qǐng)進(jìn)一步詳細(xì)了解該工具的官方文檔和資料。
到此這篇關(guān)于java操作minio刪除文件夾及其文件方法的文章就介紹到這了,更多相關(guān)java minio刪除文件夾內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Spring Cloud Hystrix斷路器實(shí)現(xiàn)容錯(cuò)和降級(jí)
本篇文章主要介紹了詳解Spring Cloud Hystrix斷路器實(shí)現(xiàn)容錯(cuò)和降級(jí),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
SpringBoot使用Aspect切面攔截打印請(qǐng)求參數(shù)的示例代碼
這篇文章主要介紹了SpringBoot使用Aspect切面攔截打印請(qǐng)求參數(shù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-07-07
java實(shí)現(xiàn)文件斷點(diǎn)續(xù)傳下載功能
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)文件斷點(diǎn)續(xù)傳下載功能的具體代碼,感興趣的小伙伴們可以參考一下2016-05-05
聊聊java中一些減少if else 的編碼習(xí)慣的方法
這篇文章主要介紹了聊聊java中一些減少if else 的編碼習(xí)慣的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
js判斷是否是移動(dòng)設(shè)備登陸網(wǎng)頁(yè)的簡(jiǎn)單方法
這篇文章主要介紹了js判斷是否是移動(dòng)設(shè)備登陸網(wǎng)頁(yè)的簡(jiǎn)單方法,需要的朋友可以參考下2014-02-02
java 讀取系統(tǒng)Properties代碼實(shí)例
這篇文章主要介紹了java 讀取系統(tǒng)Properties代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
SpringBoot中@EnableAsync和@Async注解的使用小結(jié)
在SpringBoot中,可以通過(guò)@EnableAsync注解來(lái)啟動(dòng)異步方法調(diào)用的支持,通過(guò)@Async注解來(lái)標(biāo)識(shí)異步方法,讓方法能夠在異步線程中執(zhí)行,本文就來(lái)介紹一下,感興趣的可以了解一下2023-11-11

