本地MinIO存儲(chǔ)服務(wù)Java遠(yuǎn)程調(diào)用上傳文件的操作過(guò)程
MinIO是一款高性能、分布式的對(duì)象存儲(chǔ)系統(tǒng),它可以100%的運(yùn)行在標(biāo)準(zhǔn)硬件上,即X86等低成本機(jī)器也能夠很好的運(yùn)行MinIO。它的優(yōu)點(diǎn)包括高性能、高可用性、易于部署和管理、支持多租戶等。
Cpolar內(nèi)網(wǎng)穿透提供了更高的安全性和隱私保護(hù),通過(guò)使用加密通信通道,Cpolar技術(shù)可以確保數(shù)據(jù)傳輸?shù)陌踩?,這為用戶和團(tuán)隊(duì)提供了更可靠的保護(hù),使他們能夠放心地處理和存儲(chǔ)敏感的工作內(nèi)容。
下面介紹本地MinIO 存儲(chǔ)服務(wù)通過(guò)Java程序結(jié)合Cpolar內(nèi)網(wǎng)穿透進(jìn)行遠(yuǎn)程連接,文件上傳,如需安裝MinIO,請(qǐng)參考這個(gè)教程:Docker 安裝MinIO教程
1. 創(chuàng)建Buckets和Access Keys
打開(kāi)minio管理界面,點(diǎn)擊buckets界面,創(chuàng)建一個(gè)buckets,buckets 概念翻譯過(guò)來(lái)是桶的意思,創(chuàng)建一個(gè)桶,把文件放入這個(gè)桶里面進(jìn)行分組管理.
輸入buckets名稱,點(diǎn)擊創(chuàng)建
創(chuàng)建好buckets后,還需要?jiǎng)?chuàng)建一個(gè)連接時(shí)候的秘鑰,打開(kāi)Access Keys界面,點(diǎn)擊創(chuàng)建access key
點(diǎn)擊創(chuàng)建后,會(huì)生成access key 和secret key ,繼續(xù)點(diǎn)擊create創(chuàng)建
然后可以看到提示這兩個(gè)需要記住,連接的時(shí)候需要用到(可以復(fù)制出來(lái)),然后關(guān)閉窗口即可,創(chuàng)建完成這兩個(gè)后,接下來(lái)安裝cpolar工具,通過(guò)cpolar生成的公網(wǎng)地址,我們很容易實(shí)現(xiàn)遠(yuǎn)程連接
2. Linux 安裝Cpolar
上面創(chuàng)建連接需要的參數(shù)后,下面我們?cè)贚inux安裝cpolar內(nèi)網(wǎng)穿透工具,通過(guò)cpolar 轉(zhuǎn)發(fā)本地端口映射的公網(wǎng)地址,我們可以很容易實(shí)現(xiàn)遠(yuǎn)程訪問(wèn),而無(wú)需自己注冊(cè)域名購(gòu)買云服務(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
啟動(dòng)cpolar服務(wù)
sudo systemctl start cpolar
cpolar安裝成功后,在外部瀏覽器上訪問(wèn)Linux 的9200端口即:【http://局域網(wǎng)ip:9200】,使用cpolar賬號(hào)登錄,登錄后即可看到cpolar web 配置界面,結(jié)下來(lái)在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)建
然后打開(kāi)左側(cè)在線隧道列表,查看剛剛創(chuàng)建隧道后生成的tcp地址,這個(gè)地址就是公網(wǎng)連接地址,我們可以在任意程序上使用該地址進(jìn)行連接,下面進(jìn)行遠(yuǎn)程連接上傳文件測(cè)試
4. 遠(yuǎn)程調(diào)用MinIO服務(wù)
根據(jù)官方demo,以Java 為例,導(dǎo)入相關(guān)包,第一個(gè)是minio包,第二個(gè)是為了防止提示okhttp版本異常,所以也導(dǎo)入進(jìn)去
<!--minio 對(duì)象存儲(chǔ)包--> <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)地址和對(duì)應(yīng)的端口,再設(shè)置accessKey和secretKey,指定bucket,填寫需要上傳文件的路徑,運(yùn)行,無(wú)報(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)行完成后,打開(kāi)minio管理界面,進(jìn)入Object Browser,然后點(diǎn)擊helloworld,我們創(chuàng)建的bucket,即可看到上傳的文件,這樣就表示成功了,當(dāng)然,這邊測(cè)試,地址是寫在內(nèi)部,如生產(chǎn)環(huán)境,建議將地址進(jìn)行外部配置,有助于方便后續(xù)修改,具體更多操作方式,可以參考官方文檔
小結(jié)
為了更好地演示,我們?cè)谇笆鲞^(guò)程中使用了Cpolar生成的隧道,其公網(wǎng)地址是隨機(jī)生成的。
這種隨機(jī)地址的優(yōu)勢(shì)在于建立速度快,可以立即使用。然而,它的缺點(diǎn)是網(wǎng)址是隨機(jī)生成,這個(gè)地址在24小時(shí)內(nèi)會(huì)發(fā)生隨機(jī)變化,更適合于臨時(shí)使用。
我一般會(huì)使用固定TCP域名,原因是我希望將地址發(fā)送給同事或客戶時(shí),它是一個(gè)固定、易記的公網(wǎng)地址,這樣更顯正式,便于流交協(xié)作。
5. 固定連接TCP公網(wǎng)地址
要注意的是,以上步驟使用的是隨機(jī)臨時(shí)tcp端口地址,所生成的公網(wǎng)地址為隨機(jī)臨時(shí)地址,該公網(wǎng)地址24小時(shí)內(nèi)會(huì)隨機(jī)變化。我們接下來(lái)為其配置固定的TCP端口地址,該地址不會(huì)變化,設(shè)置后將無(wú)需每天重復(fù)修改地址。
配置固定tcp端口地址需要將cpolar升級(jí)到專業(yè)版套餐或以上。
保留一個(gè)固定tcp地址,登錄cpolar官網(wǎng),點(diǎn)擊左側(cè)的預(yù)留,找到保留的tcp地址,我們來(lái)為我的世界保留一個(gè)固定tcp地址:
- 地區(qū):選擇China
- 描述:即備注,可自定義
點(diǎn)擊保留
地址保留成功后,系統(tǒng)會(huì)生成相應(yīng)的固定公網(wǎng)地址,將其復(fù)制下來(lái)
打開(kāi)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. 固定地址連接測(cè)試
固定好了地址后,程序中修改成我們固定的TCP地址進(jìn)行連接,當(dāng)然,這邊測(cè)試,地址是寫在內(nèi)部,如生產(chǎn)環(huán)境,建議將地址進(jìn)行外部配置,有助于方便后續(xù)修改
運(yùn)行后,等待上傳完成,然后再次打開(kāi)我們管理界面,可以看到文件上傳成功,這樣一個(gè)固定公網(wǎng)地址就設(shè)置好了.
到此這篇關(guān)于本地MinIO存儲(chǔ)服務(wù)Java遠(yuǎn)程調(diào)用上傳文件的文章就介紹到這了,更多相關(guān)Java 本地MinIO存儲(chǔ)服務(wù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(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-06Maven環(huán)境安裝配置和新建項(xiàng)目介紹
這篇文章介紹了Maven環(huán)境安裝配置和新建項(xiàng)目介紹,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-12-12JavaWeb使用Cookie模擬實(shí)現(xiàn)自動(dòng)登錄功能(不需用戶名和密碼)
不需要填寫用戶名和密碼自動(dòng)登錄系統(tǒng),其實(shí)現(xiàn)思路使用cookie模擬瀏覽器自動(dòng)登錄,對(duì)cookie實(shí)現(xiàn)自動(dòng)登錄功能感興趣的朋友一起學(xué)習(xí)吧2016-08-08eclipse啟動(dòng)一個(gè)Springboot項(xiàng)目
本文主要介紹了eclipse啟動(dòng)一個(gè)Springboot項(xiàng)目,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08一文詳解Java中的動(dòng)態(tài)填充Html模版并轉(zhuǎn)PDF
在后端技術(shù)中,模板引擎和PDF生成工具是兩個(gè)非常重要的領(lǐng)域,Thymeleaf和wkhtmltopdf是這兩個(gè)領(lǐng)域的杰出代表,下面就來(lái)詳細(xì)介紹一下Thymeleaf和wkhtmltopdf的技術(shù)特點(diǎn)吧2023-12-12Java web含驗(yàn)證碼及權(quán)限登錄實(shí)例代碼
這篇文章主要介紹了Java web含驗(yàn)證碼及權(quán)限登錄實(shí)例代碼,所用到的開(kāi)發(fā)工具為myeclipse10,MySQL數(shù)據(jù)庫(kù),具體實(shí)現(xiàn)代碼大家參考下本文吧2017-03-03idea不能自動(dòng)補(bǔ)全yml配置文件的原因分析
這篇文章主要介紹了idea不能自動(dòng)補(bǔ)全yml配置文件的原因,通過(guò)添加yml文件為配置文件能夠很快的解決,具體解決步驟跟隨小編一起通過(guò)本文學(xué)習(xí)下吧2021-06-06java通過(guò)AES生成公鑰加密數(shù)據(jù)ECC加密公鑰
這篇文章主要為大家介紹了java通過(guò)AES生成公鑰加密數(shù)據(jù)ECC加密公鑰實(shí)現(xiàn)案例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12Spring框架事務(wù)屬性中事務(wù)隔離級(jí)別與傳播行為全面講解
這篇文章主要介紹了Spring框架聲明式事務(wù)的事務(wù)隔離級(jí)別和事務(wù)傳播行為,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-11-11