本地MinIO存儲服務Java遠程調用上傳文件的操作過程
MinIO是一款高性能、分布式的對象存儲系統(tǒng),它可以100%的運行在標準硬件上,即X86等低成本機器也能夠很好的運行MinIO。它的優(yōu)點包括高性能、高可用性、易于部署和管理、支持多租戶等。
Cpolar內網穿透提供了更高的安全性和隱私保護,通過使用加密通信通道,Cpolar技術可以確保數據傳輸的安全性,這為用戶和團隊提供了更可靠的保護,使他們能夠放心地處理和存儲敏感的工作內容。
下面介紹本地MinIO 存儲服務通過Java程序結合Cpolar內網穿透進行遠程連接,文件上傳,如需安裝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)建
然后可以看到提示這兩個需要記住,連接的時候需要用到(可以復制出來),然后關閉窗口即可,創(chuàng)建完成這兩個后,接下來安裝cpolar工具,通過cpolar生成的公網地址,我們很容易實現遠程連接
2. Linux 安裝Cpolar
上面創(chuàng)建連接需要的參數后,下面我們在Linux安裝cpolar內網穿透工具,通過cpolar 轉發(fā)本地端口映射的公網地址,我們可以很容易實現遠程訪問,而無需自己注冊域名購買云服務器.下面是安裝cpolar步驟
cpolar官網地址: https://i.cpolar.com/m/56Ju
使用一鍵腳本安裝命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
向系統(tǒng)添加服務
sudo systemctl enable cpolar
啟動cpolar服務
sudo systemctl start cpolar
cpolar安裝成功后,在外部瀏覽器上訪問Linux 的9200端口即:【http://局域網ip:9200】,使用cpolar賬號登錄,登錄后即可看到cpolar web 配置界面,結下來在web 管理界面配置即可
3. 創(chuàng)建連接MinIO服務公網地址
登錄cpolar web UI管理界面后,點擊左側儀表盤的隧道管理——創(chuàng)建隧道:
- 隧道名稱:可自定義,注意不要與已有的隧道名稱重復
- 協議:tcp
- 本地地址:9000 (本地默認端口)
- 域名類型:臨時隨機TCP端口
- 地區(qū):選擇China VIP
點擊創(chuàng)建
然后打開左側在線隧道列表,查看剛剛創(chuàng)建隧道后生成的tcp地址,這個地址就是公網連接地址,我們可以在任意程序上使用該地址進行連接,下面進行遠程連接上傳文件測試
4. 遠程調用MinIO服務
根據官方demo,以Java 為例,導入相關包,第一個是minio包,第二個是為了防止提示okhttp版本異常,所以也導入進去
<!--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 公網地址進行連接,設置創(chuàng)建的公網地址和對應的端口,再設置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)//局域網 .endpoint("1.tcp.cpolar.cn",20380,false)//Cpolar 公網地址 .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,即可看到上傳的文件,這樣就表示成功了,當然,這邊測試,地址是寫在內部,如生產環(huán)境,建議將地址進行外部配置,有助于方便后續(xù)修改,具體更多操作方式,可以參考官方文檔
小結
為了更好地演示,我們在前述過程中使用了Cpolar生成的隧道,其公網地址是隨機生成的。
這種隨機地址的優(yōu)勢在于建立速度快,可以立即使用。然而,它的缺點是網址是隨機生成,這個地址在24小時內會發(fā)生隨機變化,更適合于臨時使用。
我一般會使用固定TCP域名,原因是我希望將地址發(fā)送給同事或客戶時,它是一個固定、易記的公網地址,這樣更顯正式,便于流交協作。
5. 固定連接TCP公網地址
要注意的是,以上步驟使用的是隨機臨時tcp端口地址,所生成的公網地址為隨機臨時地址,該公網地址24小時內會隨機變化。我們接下來為其配置固定的TCP端口地址,該地址不會變化,設置后將無需每天重復修改地址。
配置固定tcp端口地址需要將cpolar升級到專業(yè)版套餐或以上。
保留一個固定tcp地址,登錄cpolar官網,點擊左側的預留,找到保留的tcp地址,我們來為我的世界保留一個固定tcp地址:
- 地區(qū):選擇China
- 描述:即備注,可自定義
點擊保留
地址保留成功后,系統(tǒng)會生成相應的固定公網地址,將其復制下來
打開cpolar web ui管理界面,點擊左側儀表盤的隧道管理——隧道列表,找到我們上面創(chuàng)建的TCP隧道,點擊右側的編輯
修改隧道信息,將保留成功的固定tcp地址配置到隧道中
- 端口類型:修改為固定tcp端口
- 預留的tcp地址:填寫官網保留成功的地址,
點擊更新
隧道更新成功后,點擊左側儀表盤的狀態(tài)——在線隧道列表,可以看到公網地址已經更新成為了固定TCP地址。
6. 固定地址連接測試
固定好了地址后,程序中修改成我們固定的TCP地址進行連接,當然,這邊測試,地址是寫在內部,如生產環(huán)境,建議將地址進行外部配置,有助于方便后續(xù)修改
運行后,等待上傳完成,然后再次打開我們管理界面,可以看到文件上傳成功,這樣一個固定公網地址就設置好了.
到此這篇關于本地MinIO存儲服務Java遠程調用上傳文件的文章就介紹到這了,更多相關Java 本地MinIO存儲服務內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
mall整合SpringSecurity及JWT實現認證授權實戰(zhàn)
這篇文章主要為大家介紹了mall整合SpringSecurity及JWT實現認證授權實戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06JavaWeb使用Cookie模擬實現自動登錄功能(不需用戶名和密碼)
不需要填寫用戶名和密碼自動登錄系統(tǒng),其實現思路使用cookie模擬瀏覽器自動登錄,對cookie實現自動登錄功能感興趣的朋友一起學習吧2016-08-08一文詳解Java中的動態(tài)填充Html模版并轉PDF
在后端技術中,模板引擎和PDF生成工具是兩個非常重要的領域,Thymeleaf和wkhtmltopdf是這兩個領域的杰出代表,下面就來詳細介紹一下Thymeleaf和wkhtmltopdf的技術特點吧2023-12-12