本地MinIO存储服务通过Java程序结合cpolar实现远程连接上传文件

简介: 本地MinIO存储服务通过Java程序结合cpolar实现远程连接上传文件

前言

MinIO是一款高性能、分布式的对象存储系统,它可以100%的运行在标准硬件上,即X86等低成本机器也能够很好的运行MinIO。它的优点包括高性能、高可用性、易于部署和管理、支持多租户等。

Cpolar内网穿透提供了更高的安全性和隐私保护,通过使用加密通信通道,Cpolar技术可以确保数据传输的安全性,这为用户和团队提供了更可靠的保护,使他们能够放心地处理和存储敏感的工作内容。

下面介绍本地MinIO 存储服务通过Java程序结合Cpolar内网穿透进行远程连接,文件上传,如需安装MinIO,请参考这个教程:Docker 安装MinIO教程

1. 创建Buckets和Access Keys

打开minio管理界面,点击buckets界面,创建一个buckets,buckets 概念翻译过来是桶的意思,创建一个桶,把文件放入这个桶里面进行分组管理.


输入buckets名称,点击创建

创建好buckets后,还需要创建一个连接时候的秘钥,打开Access Keys界面,点击创建access key

点击创建后,会生成access key 和secret key ,继续点击create创建


然后可以看到提示这两个需要记住,连接的时候需要用到(可以复制出来),然后关闭窗口即可,创建完成这两个后,接下来安装cpolar工具,通过cpolar生成的公网地址,我们很容易实现远程连接

2. Linux 安装Cpolar

上面创建连接需要的参数后,下面我们在Linux安装cpolar内网穿透工具,通过cpolar 转发本地端口映射的公网地址,我们可以很容易实现远程访问,而无需自己注册域名购买云服务器.下面是安装cpolar步骤


cpolar官网地址: https://www.cpolar.com


使用一键脚本安装命令

curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 向系统添加服务
sudo systemctl enable cpolar
  • 启动cpolar服务
sudo systemctl start cpolar

cpolar安装成功后,在外部浏览器上访问Linux 的9200端口即:【http://局域网ip:9200】,使用cpolar账号登录,登录后即可看到cpolar web 配置界面,结下来在web 管理界面配置即可


3. 创建连接MinIO服务公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,注意不要与已有的隧道名称重复
  • 协议:tcp
  • 本地地址:9000 (本地默认端口)
  • 域名类型:临时随机TCP端口
  • 地区:选择China VIP

点击创建

然后打开左侧在线隧道列表,查看刚刚创建隧道后生成的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 公网地址进行连接,设置创建的公网地址和对应的端口,再设置accessKey和secretKey,指定bucket,填写需要上传文件的路径,运行,无报错表示成功

运行完成后,打开minio管理界面,进入Object Browser,然后点击helloworld,我们创建的bucket,即可看到上传的文件,这样就表示成功了,当然,这边测试,地址是写在内部,如生产环境,建议将地址进行外部配置,有助于方便后续修改,具体更多操作方式,可以参考官方文档

4740421edf71b27828d34cba9a91e982.png

小结

为了更好地演示,我们在前述过程中使用了Cpolar生成的隧道,其公网地址是随机生成的。

这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。

我一般会使用固定TCP域名,原因是我希望将地址发送给同事或客户时,它是一个固定、易记的公网地址,这样更显正式,便于流交协作。

5. 固定连接TCP公网地址

要注意的是,以上步骤使用的是随机临时tcp端口地址,所生成的公网地址为随机临时地址,该公网地址24小时内会随机变化。我们接下来为其配置固定的TCP端口地址,该地址不会变化,设置后将无需每天重复修改地址。


配置固定tcp端口地址需要将cpolar升级到专业版套餐或以上。


保留一个固定tcp地址,登录cpolar官网,点击左侧的预留,找到保留的tcp地址,我们来为我的世界保留一个固定tcp地址:

  • 地区:选择China
  • 描述:即备注,可自定义

点击保留

地址保留成功后,系统会生成相应的固定公网地址,将其复制下来

打开cpolar web ui管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到我们上面创建的TCP隧道,点击右侧的编辑

修改隧道信息,将保留成功的固定tcp地址配置到隧道中

  • 端口类型:修改为固定tcp端口
  • 预留的tcp地址:填写官网保留成功的地址,

点击更新

隧道更新成功后,点击左侧仪表盘的状态——在线隧道列表,可以看到公网地址已经更新成为了固定TCP地址。

6. 固定地址连接测试

固定好了地址后,程序中修改成我们固定的TCP地址进行连接,当然,这边测试,地址是写在内部,如生产环境,建议将地址进行外部配置,有助于方便后续修改

运行后,等待上传完成,然后再次打开我们管理界面,可以看到文件上传成功,这样一个固定公网地址就设置好了.

相关文章
|
1天前
|
搜索推荐 算法 Java
滚雪球学Java(29):数组长度和排序算法:让你的程序更高效
【5月更文挑战第4天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
10 0
滚雪球学Java(29):数组长度和排序算法:让你的程序更高效
|
1天前
|
前端开发 Java 应用服务中间件
【异常解决】java程序连接MinIO报错The request signature we calculated does not match the signature you provided.
【异常解决】java程序连接MinIO报错The request signature we calculated does not match the signature you provided.
12 0
|
1天前
|
Java Linux C语言
一步带你了解java程序逻辑控制
一步带你了解java程序逻辑控制
15 2
|
1天前
|
Java 数据安全/隐私保护
java中程序控制的典例
java中程序控制的典例
13 1
|
1天前
|
JavaScript 小程序 Java
Java毕设之在线医疗服务系统的设计与实现
Java毕设之在线医疗服务系统的设计与实现
13 3
|
1天前
|
小程序 Java 关系型数据库
Java毕设之农产品供销服务系统
Java毕设之农产品供销服务系统
13 2
|
1天前
|
安全 Java API
使用Java构建RESTfulWeb服务
使用Java构建RESTfulWeb服务
9 0
|
1天前
|
存储 Java 数据库连接
使用Java开发桌面应用程序
使用Java开发桌面应用程序
17 0
|
1天前
|
关系型数据库 MySQL Java
通过使用阿里云服务器,搭建Java程序的运行环境
通过使用阿里云服务器,搭建Java程序的运行环境
|
1天前
|
Arthas 安全 Java
java服务报错 FileNotFoundException:打开的文件过多
java服务报错 FileNotFoundException:打开的文件过多
16 0