开源轻量级文件分享服务Go File本地Docker部署与远程访问

???欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

  • 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
  • 导航
    • 檀越剑指大厂系列:全面总结 java 核心技术,jvm,并发编程 redis,kafka,Spring,微服务等
    • 常用开发工具系列:常用的开发工具,IDEA,Mac,Alfred,Git,typora 等
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 新空间代码工作室:提供各种软件服务,承接各种毕业设计,毕业论文等
    • 懒人运维系列:总结好用的命令,解放双手不香吗能用一个命令完成绝不用两个操作
    • 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。??? 欢迎订阅本专栏

博客目录
    • 前言
    • 1. 安装 Docker
    • 2. Go File 使用演示
    • 3. 安装 cpolar 内网穿透
    • 4. 配置 Go File 公网地址
    • 5. 配置 Go File 固定公网地址

前言

今天和大家分享一款超好用的开源轻量级文件分享工具 Go File,如何在本地 Ubuntu 使用 Docker 快速部署,并结合 cpolar 内网穿透工具一键发布公网,轻松实现随时随地远程访问分享文件。

无论是办公还是日常生活中,我们都会遇到使用 PC 设备和安卓设备之间进行文件传输的时候。最近找到的这款 Go File 就是一款非常不错的文件传输工具。可用于局域网内分享文件和文件夹,直接跑满本地带宽。由于 Go 语言本身具有跨平台特性,Go-File 也能够在不同的操作系统上运行,如 Windows、Linux 和 macOS 等。

Go File 的应用场景非常多,无论是团队协作,学习资料分享,个人文件备份都可以轻松搞定。Go File 不仅无需复杂的配置和安装,而且功能非常强大,除了正常的上传和下载文件,还支持文件夹分享,方便一次性分享多个文件。内置图床,支持图片上传和 API 接口,方便用户将图片资源上传到本地服务器,并用于博客、网站等场景。不仅如此,Go File 还内置视频播放页面,支持在线播放本地视频文件,方便用户在不同设备上观看视频。

而在安全方面,Go File 允许对不同类型的用户设置文件访问权限限制,确保文件安全。支持设置访问频率限制,防止恶意访问和滥用资源。还支持 Token API 验证,方便与其他系统整合,实现更高级的文件管理和访问控制。

在本例中,也将使用在 Ubuntu 通过 Docker 的方式快速部署,过程非常简单,下面就来进行具体演示。

1. 安装 Docker

本例使用 Docker 进行部署,如果没有安装 Docker,可以查看这篇教程进行安装:《Docker 安装教程——Linux、Windows、MacOS》

首先打开终端输入这行命令拉取镜像:

sudo docker pull justsong/go-file

然后执行这行命令启动容器即可:

sudo docker run -d --restart always -p 3000:3000 -eTZ=Asia/Shanghai -v /home/ubuntu/data/go-file:/data justsong/go-file

本例数据将会保存在宿主机的 /home/ubuntu/data/go-file 目录,大家可自行修改路径。

image-20241206170037563

现在就已经部署完毕了。

2. Go File 使用演示

现在您打开 Web 浏览器输入 localhost:3000,就可以访问到 Go File 的登录页面了,可以看到界面非常简洁明了。

image-20241206170258355

登录账号:用户名为 admin,密码为 123456

image-20241206170400580

成功登录:

image-20241206170447990

点击上传按钮后,可以选择文件夹中的文件或者直接拖拽文件进行上传:

image-20241206170822677

image-20241206170857622

上传成功:

image-20241206170918997

上传视频同样可以在线预览:

image-20241206171129079

点击主页,可以看到刚才上传的文件,有链接分享和二维码分享两种方式:

image-20241206171806576

点击帮助可以查看更多功能介绍与使用教程:

image-20241206171318741

3. 安装 cpolar 内网穿透

不过我们目前只能在本地局域网内访问刚刚部署的 Go File 进行文件分享,如果想不在同一局域网内时,也能在外部网络环境远程访问本地部署的 Go File,应该怎么办呢?我们可以使用 cpolar 内网穿透工具来实现远程访问的需求。无需公网 IP,也不用设置路由器那么麻烦。

下面是安装 cpolar 步骤:

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

使用一键脚本安装命令

sudo curl https://get.cpolar.sh | sh

img

安装完成后,执行下方命令查看 cpolar 服务状态:(如图所示即为正常启动)

sudo systemctl status cpolar

img

Cpolar 安装和成功启动服务后,在浏览器上输入 ubuntu 主机 IP 加 9200 端口即:【http://localhost:9200】访问 Cpolar 管理界面,使用 Cpolar 官网注册的账号登录,登录后即可看到 cpolar web 配置界面,接下来在 web 界面配置即可:

image-20240801133735424

4. 配置 Go File 公网地址

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

  • 隧道名称:可自定义,本例使用了: gofile,注意不要与已有的隧道名称重复
  • 协议:http
  • 本地地址:3000
  • 域名类型:随机域名
  • 地区:选择 China Top

点击创建:

image-20241206172637652

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了两个公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用任意一个地址在浏览器中访问即可。

image-20241206172811809

如下图所示,成功实现使用公网地址异地远程访问本地部署的 Go File 文件分享服务啦。

image-20241206172915020

小结

为了方便演示,我们在上边的操作过程中使用 cpolar 生成的 HTTP 公网地址隧道,其公网地址是随机生成的。这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在 24 小时内会发生随机变化,更适合于临时使用。

如果有长期使用 Go File 文件分享服务,或者异地访问与使用其他本地部署的服务的需求,但又不想每天重新配置公网地址,还想让公网地址好看又好记并体验更多功能与更快的带宽,那我推荐大家选择使用固定的二级子域名方式来配置公网地址。

5. 配置 Go File 固定公网地址

由于以上使用 cpolar 所创建的隧道使用的是随机公网地址,24 小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化。

点击左侧的预留,选择保留二级子域名,地区选择 china top,然后设置一个二级子域名名称,填写备注信息,点击保留。

image-20241206173148133

保留成功后复制保留的二级子域名地址:

image-20241206173231438

登录 cpolar web UI 管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

image-20241206173303695

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名
  • 地区: China Top

点击更新

image-20241206173342372

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

image-20241206173428596

最后,我们使用固定的公网地址访问 Go File 可以看到访问成功,这样一个永久不会变化的二级子域名网址即设置好了。

image-20241206173601466

最后需要注意:

  1. 默认配置下访客可以上传和下载文件,可在 管理 -> 系统设置 中修改权限配置。
  2. 如果是公网部署,务必记得第一时间更改默认密码!

接下来就可以随时随地远程访问管理 Go File 了,把公网地址分享给身边的人,还可以方便团队协作。自己用的话,无需云服务器,还可以实现异地远程访问!以上就是如何在 Linux Ubuntu 系统 Docker 本地部署 Go File 并实现异地远程访问进行文件分享的全部过程,感谢观看!

觉得有用的话点个赞 ???? 呗。
本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!???

???如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!?? ?? ??

???Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!???

img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/944161.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

flask基础

from flask import Flask, requestapp Flask(__name__)# app.route(/) # def hello_world(): # put applications code here # return Hello World!app.route(/) # 路由 当用户访问特定 URL 时,Flask 会调用对应的视图函数来处理请求 def index():return …

WPF使用OpenCvSharp4

WPF使用OpenCvSharp4 创建项目安装OpenCvSharp4 创建项目 安装OpenCvSharp4 在解决方案资源管理器中,右键单击项目名称,选择“管理 NuGet 包”。搜索并安装以下包: OpenCvSharp4OpenCvSharp4.ExtensionsOpenCvSharp4.runtime.winSystem.Man…

社媒运营专线 - SD-WAN 跨境网络专线 —— 外贸企业社媒平台的专属 “快车道”

在当今全球化的商业浪潮中,社交媒体平台已成为外贸企业拓展国际市场、提升品牌知名度和促进业务增长的关键阵地。然而,网络访问速度慢、IP 不纯净等问题却如影随形,严重制约了企业社媒运营的效率和效果。幸运的是,社媒运营专线 - …

RustDesk内置ID服务器,Key教程

RustDesk内置ID服务器,Key教程 首先需要准备一个域名,并将其指定到你的 rustdesk 服务器 ip 地址上,这里编译采用的是Github Actions ,说白了是就workflows,可以创建一些自动化的工作流程,例如代码的检查&a…

代码随想录算法【Day4】

Day4 1.链表的题目,要在草稿纸上模拟清晰后就简单了 2.双指针更加灵活的应用。 3.环形链表多练习。 24. 两两交换链表中的节点 class Solution { public:ListNode* swapPairs(ListNode* head) {ListNode* _dummyHead new ListNode(0); //虚拟头结点_dummyHead…

计算机毕业设计hadoop+spark+hive民宿推荐系统 酒店推荐系统 民宿价格预测 酒店价格 预测 机器学习 深度学习 Python爬虫 HDFS集群

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

win11中win加方向键失效的原因

1、可能是你把win键锁了: 解决办法:先按Fn键,再按win键 2、可能是可能是 贴靠窗口设置 中将贴靠窗口关闭了,只需要将其打开就好了

Unity自定义Inspector属性名特性以及特性自定义布局问题

前言: 在Unity中编辑属性的适合,一般都是显示属性的英文,如果想要改成中文的话又不能改变属性名,那么自定义特性是很好的选择。 一、自定以特性 这一块没有什么要多说的,就是自定义特性 using UnityEngine; #if UNI…

sentinel集成nacos启动报[check-update] get changed dataId error, code: 403错误排查及解决

整合nacos报403错误 因为平台写的一个限流代码逻辑有问题,所以准备使用sentinel来限流。平台依赖里面已经引入了,之前也测试过,把sentinel关于nacos的配置加上后,启动一直输出403错误 [fixed-10.0.20.188_8848-test] [check-upda…

普通人怎么入门学习并使用AI?

前言 作为普通人看着AI一天一天变革,心急如焚,未来但是就是不知道怎么才算真正进入了AI,使用AI....作为从头至尾追随AI脚步的码农有几点小建议~ 一、💻使用 AI 网站或软件,解决实际问题 不管用哪种AI,先用…

洛谷 P1725:琪露诺 ← 单调队列+DP

【题目来源】https://www.luogu.com.cn/problem/P1725【题目描述】 在幻想乡,琪露诺是以笨蛋闻名的冰之妖精。 某一天,琪露诺又在玩速冻青蛙,就是用冰把青蛙瞬间冻起来。但是这只青蛙比以往的要聪明许多,在琪露诺来之前就已经跑到…

SDL单设备登录

SDL单设备登录 需求:当账户在其他地方登录时,当前已登录账户会被顶下线 核心思路: 前后端建立WebSocket连接,当客户端登录账户,根据用户id保存Socket连接,如果该用户已有保存的连接,则通知下线…

MySQL数据库函数——日期函数

常用的日期函数 函数功能curdate()返回当前日期curtime()返回当前时间now()返回当前日期和时间year(date)获取指定date的年份month(date)获取指定date的月份day(date)获取指定date的日期date_add(date,interval expr type)返回一个日期/时间值加上一个时间间隔expr后的时间值d…

基于MATLAB的冰箱水果保鲜识别系统

摘要:本作品旨在研究和实现基于MATLAB软件的冰箱水果保鲜识别系统,针对多种常见水果混合的图像进行处理和识别。首先,根据水果与背景的差异选择合适的阈值,对图像进行去噪和对比度增强,然后进行二值化处理。接下来&…

谷歌地球引擎GEE计算NDVI与NDWI的年平均值的方法

本文介绍在谷歌地球引擎(Google Earth Engine,GEE)中,基于哨兵2号遥感影像数据,计算某一指定区域NDVI、NDWI等指标的年平均值的方法。 本文是谷歌地球引擎(Google Earth Engine,GEE)…

《机器视觉:开启智能新时代》

《机器视觉:开启智能新时代》 一、机器视觉:工业之眼的崛起二、核心组件:构建精准视觉系统(一)光源:照亮视界的画笔(二)镜头:聚焦精准的慧眼(三)相…

RPA系列-uipath 学习笔记4

使用Uipath 处理hover的问题 备注:使用uipath stversion:2024.10.6,所有学习来源自uipath Academy 首先,打开uipath给我们提供的一个网站 ACME,这个网站呢,需要提前注册一下的哈。 今天呢,就是记录一下,怎…

Excel将混乱的多行做成1列

目标是将数据按从左到右,再从上到下排成一列。 公式法 首先用textjoin函数将文本包起来,做成一个超长文本。 然后用公式 截取文本 Mid(m1,n,3),意思就是对m1单元格,从第n个字符开始,截取3个字符出来。 这个公式如何自…

期权懂|期权入门知识:如何选择期权合约?

锦鲤三三每日分享期权知识,帮助期权新手及时有效地掌握即市趋势与新资讯! 期权入门知识:如何选择期权合约? 一、选择月份: 通常情况下,月份的选择与期货合约的选择类似,主要关注主力合约。主力…

ADC(三):注入组的使用

有关ADC的基础知识请参考标准库入门教程 ADC(三):注入组的使用 1、规则组软件触发注入组自动注入2、规则组外部触发注入组自动注入3、规则组软件触发注入组外部触发(TIM2_CC1)4、规则组软件触发注入组外部触发&#xf…