本地MinIO存儲服務(wù)Java遠(yuǎn)程調(diào)用上傳文件的操作過程
MinIO是一款高性能、分布式的對象存儲系統(tǒng),它可以100%的運(yùn)行在標(biāo)準(zhǔn)硬件上,即X86等低成本機(jī)器也能夠很好的運(yùn)行MinIO。它的優(yōu)點(diǎn)包括高性能、高可用性、易于部署和管理、支持多租戶等。
Cpolar內(nèi)網(wǎng)穿透提供了更高的安全性和隱私保護(hù),通過使用加密通信通道,Cpolar技術(shù)可以確保數(shù)據(jù)傳輸?shù)陌踩裕@為用戶和團(tuán)隊(duì)提供了更可靠的保護(hù),使他們能夠放心地處理和存儲敏感的工作內(nèi)容。
下面介紹本地MinIO 存儲服務(wù)通過Java程序結(jié)合Cpolar內(nèi)網(wǎng)穿透進(jìn)行遠(yuǎn)程連接,文件上傳,如需安裝MinIO,請參考這個(gè)教程:Docker 安裝MinIO教程
1. 創(chuàng)建Buckets和Access Keys
打開minio管理界面,點(diǎn)擊buckets界面,創(chuàng)建一個(gè)buckets,buckets 概念翻譯過來是桶的意思,創(chuàng)建一個(gè)桶,把文件放入這個(gè)桶里面進(jìn)行分組管理.

輸入buckets名稱,點(diǎn)擊創(chuàng)建

創(chuàng)建好buckets后,還需要創(chuàng)建一個(gè)連接時(shí)候的秘鑰,打開Access Keys界面,點(diǎn)擊創(chuàng)建access key

點(diǎn)擊創(chuàng)建后,會生成access key 和secret key ,繼續(xù)點(diǎn)擊create創(chuàng)建

然后可以看到提示這兩個(gè)需要記住,連接的時(shí)候需要用到(可以復(fù)制出來),然后關(guān)閉窗口即可,創(chuàng)建完成這兩個(gè)后,接下來安裝cpolar工具,通過cpolar生成的公網(wǎng)地址,我們很容易實(shí)現(xiàn)遠(yuǎn)程連接

2. Linux 安裝Cpolar
上面創(chuàng)建連接需要的參數(shù)后,下面我們在Linux安裝cpolar內(nèi)網(wǎng)穿透工具,通過cpolar 轉(zhuǎn)發(fā)本地端口映射的公網(wǎng)地址,我們可以很容易實(shí)現(xiàn)遠(yuǎn)程訪問,而無需自己注冊域名購買云服務(wù)器.下面是安裝cpolar步驟
cpolar官網(wǎng)地址: https://i.cpolar.com/m/56Ju
使用一鍵腳本安裝命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
向系統(tǒng)添加服務(wù)
sudo systemctl enable cpolar
啟動cpolar服務(wù)
sudo systemctl start cpolar
cpolar安裝成功后,在外部瀏覽器上訪問Linux 的9200端口即:【http://局域網(wǎng)ip:9200】,使用cpolar賬號登錄,登錄后即可看到cpolar web 配置界面,結(jié)下來在web 管理界面配置即可

3. 創(chuàng)建連接MinIO服務(wù)公網(wǎng)地址
登錄cpolar web UI管理界面后,點(diǎn)擊左側(cè)儀表盤的隧道管理——創(chuàng)建隧道:
- 隧道名稱:可自定義,注意不要與已有的隧道名稱重復(fù)
- 協(xié)議:tcp
- 本地地址:9000 (本地默認(rèn)端口)
- 域名類型:臨時(shí)隨機(jī)TCP端口
- 地區(qū):選擇China VIP
點(diǎn)擊創(chuàng)建

然后打開左側(cè)在線隧道列表,查看剛剛創(chuàng)建隧道后生成的tcp地址,這個(gè)地址就是公網(wǎng)連接地址,我們可以在任意程序上使用該地址進(jìn)行連接,下面進(jìn)行遠(yuǎn)程連接上傳文件測試

4. 遠(yuǎn)程調(diào)用MinIO服務(wù)
根據(jù)官方demo,以Java 為例,導(dǎo)入相關(guān)包,第一個(gè)是minio包,第二個(gè)是為了防止提示okhttp版本異常,所以也導(dǎo)入進(jìn)去
<!--minio 對象存儲包-->
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.5.7</version>
</dependency>
?
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.10.0</version>
</dependency>然后使用Cpolar 公網(wǎng)地址進(jìn)行連接,設(shè)置創(chuàng)建的公網(wǎng)地址和對應(yīng)的端口,再設(shè)置accessKey和secretKey,指定bucket,填寫需要上傳文件的路徑,運(yùn)行,無報(bào)錯(cuò)表示成功
try {
// Create a minioClient with the MinIO server playground, its access key and secret key.
MinioClient minioClient =
MinioClient.builder()
//.endpoint("192.168.206.128",9000,false)//局域網(wǎng)
.endpoint("1.tcp.cpolar.cn",20380,false)//Cpolar 公網(wǎng)地址
.credentials("DeEZ0sdWvHHaqKJHBCu0", "m49wRlhHIFio79D8bTP1l9YTgbVJX55s59wB3BUC")
.build();
// Upload '/home/user/Photos/asiaphotos.zip' as object name 'asiaphotos-2015.zip' to bucket
// 'asiatrip'.
minioClient.uploadObject(
UploadObjectArgs.builder()
.bucket("helloworld")
.object("cpolar-stable-windows-amd64-setup.zip")
.filename("E:/download/cpolar-stable-windows-amd64-setup.zip")
.build());
System.out.println("successfully uploade!!!");
} catch (Exception e) {
System.out.println("Error occurred: " + e);
}
運(yùn)行完成后,打開minio管理界面,進(jìn)入Object Browser,然后點(diǎn)擊helloworld,我們創(chuàng)建的bucket,即可看到上傳的文件,這樣就表示成功了,當(dāng)然,這邊測試,地址是寫在內(nèi)部,如生產(chǎn)環(huán)境,建議將地址進(jìn)行外部配置,有助于方便后續(xù)修改,具體更多操作方式,可以參考官方文檔

小結(jié)
為了更好地演示,我們在前述過程中使用了Cpolar生成的隧道,其公網(wǎng)地址是隨機(jī)生成的。
這種隨機(jī)地址的優(yōu)勢在于建立速度快,可以立即使用。然而,它的缺點(diǎn)是網(wǎng)址是隨機(jī)生成,這個(gè)地址在24小時(shí)內(nèi)會發(fā)生隨機(jī)變化,更適合于臨時(shí)使用。
我一般會使用固定TCP域名,原因是我希望將地址發(fā)送給同事或客戶時(shí),它是一個(gè)固定、易記的公網(wǎng)地址,這樣更顯正式,便于流交協(xié)作。
5. 固定連接TCP公網(wǎng)地址
要注意的是,以上步驟使用的是隨機(jī)臨時(shí)tcp端口地址,所生成的公網(wǎng)地址為隨機(jī)臨時(shí)地址,該公網(wǎng)地址24小時(shí)內(nèi)會隨機(jī)變化。我們接下來為其配置固定的TCP端口地址,該地址不會變化,設(shè)置后將無需每天重復(fù)修改地址。
配置固定tcp端口地址需要將cpolar升級到專業(yè)版套餐或以上。
保留一個(gè)固定tcp地址,登錄cpolar官網(wǎng),點(diǎn)擊左側(cè)的預(yù)留,找到保留的tcp地址,我們來為我的世界保留一個(gè)固定tcp地址:
- 地區(qū):選擇China
- 描述:即備注,可自定義
點(diǎn)擊保留

地址保留成功后,系統(tǒng)會生成相應(yīng)的固定公網(wǎng)地址,將其復(fù)制下來

打開cpolar web ui管理界面,點(diǎn)擊左側(cè)儀表盤的隧道管理——隧道列表,找到我們上面創(chuàng)建的TCP隧道,點(diǎn)擊右側(cè)的編輯

修改隧道信息,將保留成功的固定tcp地址配置到隧道中
- 端口類型:修改為固定tcp端口
- 預(yù)留的tcp地址:填寫官網(wǎng)保留成功的地址,
點(diǎn)擊更新

隧道更新成功后,點(diǎn)擊左側(cè)儀表盤的狀態(tài)——在線隧道列表,可以看到公網(wǎng)地址已經(jīng)更新成為了固定TCP地址。

6. 固定地址連接測試
固定好了地址后,程序中修改成我們固定的TCP地址進(jìn)行連接,當(dāng)然,這邊測試,地址是寫在內(nèi)部,如生產(chǎn)環(huán)境,建議將地址進(jìn)行外部配置,有助于方便后續(xù)修改

運(yùn)行后,等待上傳完成,然后再次打開我們管理界面,可以看到文件上傳成功,這樣一個(gè)固定公網(wǎng)地址就設(shè)置好了.

到此這篇關(guān)于本地MinIO存儲服務(wù)Java遠(yuǎn)程調(diào)用上傳文件的文章就介紹到這了,更多相關(guān)Java 本地MinIO存儲服務(wù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mall整合SpringSecurity及JWT實(shí)現(xiàn)認(rèn)證授權(quán)實(shí)戰(zhàn)
這篇文章主要為大家介紹了mall整合SpringSecurity及JWT實(shí)現(xiàn)認(rèn)證授權(quán)實(shí)戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
Maven環(huán)境安裝配置和新建項(xiàng)目介紹
這篇文章介紹了Maven環(huán)境安裝配置和新建項(xiàng)目介紹,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-12-12
JavaWeb使用Cookie模擬實(shí)現(xiàn)自動登錄功能(不需用戶名和密碼)
不需要填寫用戶名和密碼自動登錄系統(tǒng),其實(shí)現(xiàn)思路使用cookie模擬瀏覽器自動登錄,對cookie實(shí)現(xiàn)自動登錄功能感興趣的朋友一起學(xué)習(xí)吧2016-08-08
eclipse啟動一個(gè)Springboot項(xiàng)目
本文主要介紹了eclipse啟動一個(gè)Springboot項(xiàng)目,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
一文詳解Java中的動態(tài)填充Html模版并轉(zhuǎn)PDF
在后端技術(shù)中,模板引擎和PDF生成工具是兩個(gè)非常重要的領(lǐng)域,Thymeleaf和wkhtmltopdf是這兩個(gè)領(lǐng)域的杰出代表,下面就來詳細(xì)介紹一下Thymeleaf和wkhtmltopdf的技術(shù)特點(diǎn)吧2023-12-12
Java web含驗(yàn)證碼及權(quán)限登錄實(shí)例代碼
這篇文章主要介紹了Java web含驗(yàn)證碼及權(quán)限登錄實(shí)例代碼,所用到的開發(fā)工具為myeclipse10,MySQL數(shù)據(jù)庫,具體實(shí)現(xiàn)代碼大家參考下本文吧2017-03-03
java通過AES生成公鑰加密數(shù)據(jù)ECC加密公鑰
這篇文章主要為大家介紹了java通過AES生成公鑰加密數(shù)據(jù)ECC加密公鑰實(shí)現(xiàn)案例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
Spring框架事務(wù)屬性中事務(wù)隔離級別與傳播行為全面講解
這篇文章主要介紹了Spring框架聲明式事務(wù)的事務(wù)隔離級別和事務(wù)傳播行為,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-11-11

