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

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

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

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

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

2. Linux 安裝Cpolar
上面創(chuàng)建連接需要的參數(shù)后,下面我們在Linux安裝cpolar內(nèi)網(wǎng)穿透工具,通過cpolar 轉(zhuǎn)發(fā)本地端口映射的公網(wǎng)地址,我們可以很容易實現(xià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管理界面后,點擊左側(cè)儀表盤的隧道管理——創(chuàng)建隧道:
- 隧道名稱:可自定義,注意不要與已有的隧道名稱重復(fù)
- 協(xié)議:tcp
- 本地地址:9000 (本地默認端口)
- 域名類型:臨時隨機TCP端口
- 地區(qū):選擇China VIP
點擊創(chuàng)建

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

4. 遠程調(diào)用MinIO服務(wù)
根據(jù)官方demo,以Java 為例,導(dǎo)入相關(guān)包,第一個是minio包,第二個是為了防止提示okhttp版本異常,所以也導(dǎo)入進去
<!--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)地址進行連接,設(shè)置創(chuàng)建的公網(wǎng)地址和對應(yīng)的端口,再設(shè)置accessKey和secretKey,指定bucket,填寫需要上傳文件的路徑,運行,無報錯表示成功
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);
}
運行完成后,打開minio管理界面,進入Object Browser,然后點擊helloworld,我們創(chuàng)建的bucket,即可看到上傳的文件,這樣就表示成功了,當然,這邊測試,地址是寫在內(nèi)部,如生產(chǎn)環(huán)境,建議將地址進行外部配置,有助于方便后續(xù)修改,具體更多操作方式,可以參考官方文檔

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

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

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

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

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

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

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

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

