開源輕量級文件分享服務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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/64358.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/64358.shtml
英文地址,請注明出處:http://en.pswp.cn/web/64358.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

路過石巖浪心古村

周末常去的七彩城堡兒童樂園附近經常有老房子,沒想到老房子最多的地方還是浪心古村。而且越看越有歷史。 見到一座寫著《序西書室》的房子,我最開始以為是一個古代的學校。但是查了百度更加不知道什么意思了哈。?“序西書室”?是指《文心雕龍》中的一個…

面經hwl

線程進程協程區別 線程、進程和協程是計算機編程中常見的三個并發模型,它們各自有不同的特點和應用場景: 1. 進程 (Process) 定義: 進程是操作系統中資源分配的基本單位,代表一個正在運行的程序實例。特點: 獨立性: 每個進程有自己獨立的內…

【每日學點鴻蒙知識】PersistentStorage持久化、插槽方法、相對布局、上拉加載下拉刷新、List聯動滑動

1、HarmonyOS 使用PersistentStorage持久化用戶信息無效? 在首頁通過StorageLink(‘userInfoTest’) userInfoTest: string 獲取,獲不到,返回undefind。是什么原因呢? 首先在首頁時,在Entry外聲明PersistentStorage…

torch.tensor

torch.tensor 通過復制數據構造一個張量 (構造出的張量是一個沒有自動微分(autograd )歷史的張量,也稱為葉張量,參考Autograd mechanics)。 torch.tensor(data, *, dtypeNone, deviceNone, requires_gra…

探索PyTorch:從入門到實踐的demo全解析

探索PyTorch:從入門到實踐的demo全解析 一、環境搭建:PyTorch的基石(一)選擇你的“利器”:安裝方式解析(二)步步為營:詳細安裝步驟指南二、基礎入門demo:點亮第一盞燈(一)張量操作:深度學習的“積木”(二)自動求導:模型學習的“幕后英雄”三、數據處理demo:喂飽…

SpringMVC學習(二)——RESTful API、攔截器、異常處理、數據類型轉換

一、RESTful (一)RESTful概述 RESTful是一種軟件架構風格,用于設計網絡應用程序。REST是“Representational State Transfer”的縮寫,中文意思是“表現層狀態轉移”。它基于客戶端-服務器模型和無狀態操作,以及使用HTTP請求來處理數據。RES…

Windows中安裝Python3

Windows中安裝Python3 1. 下載Python安裝包 首先,訪問Python的官方網站 Python.org,選擇適合你Windows版本的Python安裝包。 2. 運行安裝包 下載完成.exe文件后,雙擊運行安裝包。在安裝過程中,有一些關鍵的選項需要特別注意&a…

JS數值類型中特殊數值NaN(Not-a-Number)理解和應用場景

NaN 的含義 在 JavaScript 中,NaN 是一種特殊的數值類型,表示 “Not-a-Number”。它通常用于標識數學運算或類型轉換的結果無法產生有效數值的情況。 特性 類型為數值: console.log(typeof NaN); // "number"盡管 NaN 表示 “不是…

虛幻引擎結構之UWorld

Uworld -> Ulevel ->Actors -> AActor 在虛幻引擎中,UWorld 類扮演著至關重要的角色,它就像是游戲世界的總指揮。作為游戲世界的核心容器,UWorld 包含了構成游戲體驗的眾多元素,從游戲實體到關卡設計,再到物…

java中logback怎么開啟異步功能

在Java中使用Logback時,開啟異步日志記錄功能可以通過配置AsyncAppender來實現。異步日志記錄可以顯著提高應用程序的性能,因為它將日志記錄操作從主線程移到了后臺線程執行,從而減少了主線程的阻塞時間。 步驟 1: 添加 Logback 配置文件 確…

2024第一屆Solar杯應急響應挑戰賽

日志流量 日志流量-1 直接放到D盾分析 解碼 flag{A7b4_X9zK_2v8N_wL5q4} 日志流量-2 哥斯拉流量 工具解一下 flag{sA4hP_89dFh_x09tY_lL4SI4} 日志流量-3 tcp流6復制data流 解碼 改pdf flag{dD7g_jk90_jnVm_aPkcs} 內存取證 內存取證-1 vol.py -f 123.raw --profileWin…

HarmonyOS Next 實現登錄注冊頁面(ARKTS) 并使用Springboot作為后端提供接口

1. HarmonyOS next ArkTS ArkTS圍繞應用開發在 TypeScript (簡稱TS)生態基礎上做了進一步擴展,繼承了TS的所有特性,是TS的超集 ArkTS在TS的基礎上擴展了struct和很多的裝飾器以達到描述UI和狀態管理的目的 以下代碼是一個基于…

Spring Boot教程之四十:使用 Jasypt 加密 Spring Boot 項目中的密碼

如何使用 Jasypt 加密 Spring Boot 項目中的密碼 在本文中,我們將學習如何加密 Spring Boot 應用程序配置文件(如 application.properties 或 application.yml)中的數據。在這些文件中,我們可以加密用戶名、密碼等。 您經常會遇到…

【Vue】如何在 Vue 3 中使用組合式 API 與 Vuex 進行狀態管理的詳細教程

如何在 Vue 3 中使用組合式 API 與 Vuex 進行狀態管理的詳細教程。 安裝 Vuex 首先,在你的 Vue 3 項目中安裝 Vuex。可以使用 npm 或 yarn: npm install vuexnext --save # or yarn add vuexnext創建 Store 在 Vue 3 中,你可以使用 creat…

七、隊列————相關概念詳解

隊列————相關概念詳解 前言一、隊列1.1 隊列是什么?1.2 隊列的類比 二、隊列的常用操作三、隊列的實現3.1 基于數組實現隊列3.1.1 基于環形數組實現的隊列3.1.2 基于動態數組實現的隊列 3.2 基于鏈表實現隊列 四、隊列的典型應用總結 前言 本篇文章,我們一起來…

基于 Ragflow 搭建知識庫-初步實踐

基于 Ragflow 搭建知識庫-初步實踐 一、簡介 Ragflow 是一個強大的工具,可用于構建知識庫,實現高效的知識檢索和查詢功能。本文介紹如何利用 Ragflow 搭建知識庫,包括環境準備、安裝步驟、配置過程以及基本使用方法。 二、環境準備 硬件要…

Pandas03

Pandas01 Pandas02 文章目錄 內容回顧1 排序和統計函數2 缺失值處理2.1 認識缺失值2.2 缺失值處理- 刪除2.3 缺失值處理- 填充非時序數據時序數據 3 Pandas數據類型3.1 數值類型和字符串類型之間的轉換3.2 日期時間類型3.3 日期時間索引 4 分組聚合4.1 分組聚合的API使用4.2 分…

springboot整合log4j2日志框架1

一 log4j基本知識 1.1 log4j的日志級別 Log4j定義了8個級別的log(除去OFF和ALL,可以說分為6個級別),優先級從低到高依次為:All,trace,debug,info,warn,err…

Spring源碼_05_IOC容器啟動細節

前面幾章,大致講了Spring的IOC容器的大致過程和原理,以及重要的容器和beanFactory的繼承關系,為后續這些細節挖掘提供一點理解基礎。掌握總體脈絡是必要的,接下來的每一章都是從總體脈絡中, 去研究之前沒看的一些重要…

WPF使用OpenCvSharp4

WPF使用OpenCvSharp4 創建項目安裝OpenCvSharp4 創建項目 安裝OpenCvSharp4 在解決方案資源管理器中,右鍵單擊項目名稱,選擇“管理 NuGet 包”。搜索并安裝以下包: OpenCvSharp4OpenCvSharp4.ExtensionsOpenCvSharp4.runtime.winSystem.Man…