【Docker项目实战】在Docker环境下部署go-file文件分享工具

  • 一、go-file介绍
    • 1.1 go-file简介
    • 1.2 go-file特点
    • 1.3 go-file使用场景
  • 二、本地环境介绍
    • 2.1 本地环境规划
    • 2.2 本次实践介绍
  • 三、本地环境检查
    • 3.1 检查Docker服务状态
    • 3.2 检查Docker版本
    • 3.3 检查docker compose 版本
  • 四、下载go-file镜像
  • 五、部署go-file文件分享工具
    • 5.1 创建挂载目录
    • 5.2 使用docker-cli创建go-file容器
    • 5.3 编辑docker-compose.yaml文件
    • 5.4 使用docker compose创建go-file容器
    • 5.5 检查go-file容器状态
    • 5.6 检查go-file容器日志
  • 六、go-file文件分享工具的基本使用
    • 6.1 访问go-file首页
    • 6.2 登录go-file
    • 6.3 系统管理
    • 6.4 上传文档
    • 6.5 上传图片
    • 6.6 浏览上传图片
    • 6.7 上传视频文件
    • 6.8 浏览文件
    • 6.9 分享文件
  • 七、总结

一、go-file介绍

1.1 go-file简介

go-file是一款开源的文件分享工具,仅单个可执行文件,开箱即用,可用于局域网内分享文件和文件夹,直接跑满本地带宽 。

1.2 go-file特点

  • 无需配置环境,仅单个可执行文件,直接双击即可开始使用。
  • 自动打开浏览器,分享文件快人一步。
  • 提供二维码,可供移动端扫描下载文件,告别手动输入链接。
  • 支持分享本地文件夹。
  • 适配移动端。
  • 内置图床,支持直接粘贴上传图片,提供图片上传 API。
  • 内置视频播放页面,可用于在其他设备上在线博客自己电脑上的视频,轻松跨设备在线看视频。
  • 支持拖拽上传,拷贝上传。
  • 允许对不同类型的用户设置文件访问权限限制。
  • 访问频率限制。
  • 支持 Token API 验证,便于与其他系统整合。
  • 为不熟悉命令行的用户制作了启动器。
  • 支持 PicGo,插件搜索 gofile 即可安装。
  • 配套 CLI 工具,支持命令行上传文件,支持 P2P 模式文件分享

1.3 go-file使用场景

go-file可以在以下场景进行使用:

  • 团队协作:多人共享文件,可以用于团队内部的文件共享和交流。团队成员可以将文件上传至go-file,并通过生成的链接分享给其他人进行下载。

  • 学习资料分享:教师可以将课件、教材等学习资料上传到go-file,然后将链接分享给学生进行下载。学生也可以将学习资料上传至go-file与其他同学进行分享。

  • 个人文件备份:用户可以将重要的个人文件上传到go-file进行备份,以防止文件丢失或损坏。用户可以根据需要随时下载备份文件。

  • 客户文件共享:企业可以使用go-file来分享与客户合作的文件,如合同、报价单等。通过生成的链接,可以方便地与客户共享文件。

  • 程序代码分享:开发者可以将自己的程序代码上传到go-file,并通过链接分享给其他开发者,方便进行代码交流和共享。

二、本地环境介绍

2.1 本地环境规划

本次实践为个人测试环境,操作系统版本为centos7.6。

hostnameIP地址操作系统版本Docker版本
jeven192.168.3.166centos 7.620.10.17

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下成功部署go-file文件分享工具。

三、本地环境检查

3.1 检查Docker服务状态

检查Docker服务是否正常运行,确保Docker正常运行。

[root@jeven ~]# systemctl status docker
● docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)Active: active (running) since Fri 2023-12-08 19:10:36 CST; 14h agoDocs: https://docs.docker.comMain PID: 11729 (dockerd)Tasks: 8Memory: 126.8MCGroup: /system.slice/docker.service

3.2 检查Docker版本

检查Docker版本

[root@jeven ~]# docker version
Client: Docker Engine - CommunityVersion:           20.10.17API version:       1.41Go version:        go1.17.11Git commit:        100c701Built:             Mon Jun  6 23:05:12 2022OS/Arch:           linux/amd64Context:           defaultExperimental:      trueServer: Docker Engine - CommunityEngine:Version:          20.10.17API version:      1.41 (minimum version 1.12)Go version:       go1.17.11Git commit:       a89b842Built:            Mon Jun  6 23:03:33 2022OS/Arch:          linux/amd64Experimental:     falsecontainerd:Version:          1.6.6GitCommit:        10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1runc:Version:          1.1.2GitCommit:        v1.1.2-0-ga916309docker-init:Version:          0.19.0GitCommit:        de40ad0

3.3 检查docker compose 版本

检查Docker compose版本,确保2.0以上版本。

[[root@jeven ~]# docker compose version
Docker Compose version v2.19.1

四、下载go-file镜像

在docker hub下载go-file镜像

[root@jeven ~]# docker pull justsong/go-file
Using default tag: latest
latest: Pulling from justsong/go-file
8a49fdb3b6a5: Pull complete
6c0696470a5d: Pull complete
cc95f799a85b: Pull complete
576cd38f4e44: Pull complete
Digest: sha256:9860606003f432cc15ecec4f2cff61fedc7f446acf4bdcc4ef3d936b7466ba20
Status: Downloaded newer image for justsong/go-file:latest
docker.io/justsong/go-file:latest

五、部署go-file文件分享工具

5.1 创建挂载目录

创建主机挂载目录

 mkdir -p /data/go-file/data

设置目录权限

chmod -R 777 /data/go-file/

5.2 使用docker-cli创建go-file容器

  • docker-cli创建go-file容器
docker run -d --restart always -p 3000:3000 -e TZ=Asia/Shanghai -v /data/go-file/data:/data justsong/go-file

5.3 编辑docker-compose.yaml文件

本次使用docker compose部署/go-file项目,编辑docker-compose.yaml部署文件。

version: '3.8'
services:go-file:image: justsong/go-filerestart: alwaysports:- "3000:3000"environment:- TZ=Asia/Shanghaivolumes:- /data/go-file/data:/data

5.4 使用docker compose创建go-file容器

使用docker compose创建go-file容器

[root@jeven go-file]# docker compose up -d
[+] Running 2/2⠿ Network go-file_default      Created                                                                                 0.1s⠿ Container go-file-go-file-1  Started                                                                                 1.0s

5.5 检查go-file容器状态

检查go-file容器状态

[root@jeven go-file]# docker compose ps
NAME                COMMAND             SERVICE             STATUS              PORTS
go-file-go-file-1   "/go-file"          go-file             running             0.0.0.0:3000->3000/tcp, :::3000->3000/tcp

5.6 检查go-file容器日志

检查go-file容器运行日志,确保go-file服务正常运行。

[root@jeven go-file]# docker compose logs
go-file-go-file-1  | [SYS] 2023/12/09 - 10:16:08 | Go File v0.4.12 started at port 3000

六、go-file文件分享工具的基本使用

6.1 访问go-file首页

访问地址:http://192.168.3.166:3000,将IP替换为自己服务器IP地址。

在这里插入图片描述

6.2 登录go-file

用户名为 admin,密码为 123456

在这里插入图片描述
在这里插入图片描述

6.3 系统管理

点击系统管理,分别有系统状况、账户管理、文件管理、系统设置四个选项。

在这里插入图片描述

6.4 上传文档

点击首页菜单栏的文件模块,点击“上传”,将本地文档上传到go-file。

在这里插入图片描述
在这里插入图片描述

6.5 上传图片

点击图床选项,将图片复制到图床中。

在这里插入图片描述

6.6 浏览上传图片

将图床中图片链接复制到浏览器中,可以正常打开。

在这里插入图片描述

6.7 上传视频文件

点击右上角的“上传”选项,上传视频文件。

在这里插入图片描述

点击菜单栏的视频模块,选择视频文件进行播放。

在这里插入图片描述

6.8 浏览文件

在首页上传的文档文件可以在线浏览

在这里插入图片描述
在这里插入图片描述

6.9 分享文件

点击首页上传文件的的复制图标,将复制的分享文件链接粘贴到其余浏览器即可访问。

在这里插入图片描述
在这里插入图片描述

七、总结

总体而言,go-file文件分享工具在使用上非常不错。它可以方便地分享文件、图片、视频等各种类型的文件,并且打开速度非常快。使用Docker可以快速将该工具部署到服务器中,界面简洁,操作也很简单,即使是新手也可以立即上手使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/916262.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/916262.shtml
英文地址,请注明出处:http://en.pswp.cn/news/916262.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++基础学习——文件操作详解

一、文件流类概述 C 标准库提供了三个主要的文件流类: ifstream (输入文件流):用于从文件读取数据ofstream (输出文件流):用于向文件写入数据fstream (文件流):既可读又可写 这些类都继承自 iostream 类,因此可以使用 …

Android补全计划 DrawerLayout使用

DrawerLayout其实用了很久了,甚至封装了一些代码方便不同项目使用,但重构代码的时候突然意识到这块内容很不成体系,因此又参考了些文档,组建了自己的一个文档。 toolbardrawerlayout能写的效果很多,在此我也只是截取了…

人工智能之数学基础:概率论之韦恩图的应用

韦恩图的应用由于事件的计算有时候太过于抽象了,此时我们可以使用韦恩图的方式来进行验证,我们下面来举一个例子,A∪B)-CA∪(B-C)是否成立?我们可以通过韦恩图来完成这个任务:我们通过这种方式来一点一点的…

小白成长之路-部署Zabbix7(二)

文章目录一、zabbix-自动发现二、自动注册三、zabbix-网易云邮箱-发送消息二、zabbix-钉钉告警总结一、zabbix-自动发现 1.在准备两台虚拟机,我的是192.168.144.12,192.168.144.13 server换成zabbix服务器的ip地址 vim /etc/zabbix/zabbix_agentd.conf 2.创建自动…

CMU15445-2024fall-project4踩坑经历

project4目录Task1Task2ReconstructSeqScanTask3InsertCommitTxnMgrDbgGenerateNewUndoLog And GenerateUpdateUndoLogUpdate And Delete垃圾回收Task4Index Insert并发控制Index ScanDelete、Update并发控制主键更新Bonus 1Bonus 2处理写倾斜感谢CMU的教授们给我们分享了如此精…

C++20 协程

摘要:C20 引入的协程机制为异步编程提供了轻量级解决方案,其核心优势在于通过用户态调度实现高效的上下文切换,适用于 I/O 密集型任务、生成器模式等场景。本文系统阐述 C20 协程的底层原理与实践要点,首先解析协程的基本结构&…

《计算机组成原理与汇编语言程序设计》实验报告二 基本数字逻辑及汉字显示

目 录 一、实验学时 二、实验目的 三、实验要求 四、实验内容 五、实验步骤 1、打开Logisim软件,列出并行四位二进制全加器逻辑电路真值表,并使用与、或、非、异或等基本原件实现并行四位二进制全加器逻辑电路,铺设完成后进行测试进而…

问卷调查小程序的设计与实现

问卷调查小程序的设计与实现:技术与功能全解析在数字化时代,问卷调查成为数据收集的重要工具。一款高效、易用的问卷调查小程序能够显著提升用户体验和数据质量。本文将深入探讨基于现代技术栈的问卷调查小程序的设计与实现,涵盖核心功能、技…

STM32项目实战:正弦波

波形发生器对我的钱包不怎么友好,手里面有stm32f103c8t6,于是就想,放在哪儿吃灰也是吃灰,不如做个正弦波发生器。方案 dac没怎么用过,所以打算使用输出模拟正弦波。我们决定采用以下方案:1.使用TIM2_CH3(PA…

Unity 时间抗锯齿(Temporal Antialiasing, TAA)技术解析

时间抗锯齿(Temporal Antialiasing, TAA)技术解析 一、什么是时间抗锯齿(TAA)? 时间抗锯齿(TAA)是一种先进的实时抗锯齿技术,通过在时间维度上积累多帧渲染数据,实现比传…

uniapp打开导航软件并定位到目标位置的实现

/*** 打开导航* param location 经纬度(例如:"117.214713,39.116884")* param address 地址*/ export function mapNavigation(location, address) {const locationArr location.split(,)const longitude locationArr[0]const latitude locationArr[1]…

Mysql实现高可用(主从、集群)

一、背景 需求:客户要实现Mysql8.0高可用,出现故障时,需要实现自动切换。 分析:实现切换有两种方式,一种数据库自动切换,一种代码实现。 本着麻烦别人,别麻烦自己的原则,得给客户的D…

AI编程革命:自动化代码生成、低代码开发与智能优化实践全景解析

AI编程革命:自动化代码生成、低代码开发与智能优化实践全景解析 人工智能正在重塑软件开发的基本范式,从自动化代码生成到低代码开发平台,再到算法智能优化,AI编程技术正以指数级速度改变开发者工作方式。 一、自动化代码生成技术…

[实战] 用1 PPS 驯服本地恒温晶振(OCXO/TCXO)

1 PPS 驯服本地恒温晶振(OCXO/TCXO) “让任何工程师都能在一周内做出自己的 GPSDO” 文章目录1 PPS 驯服本地恒温晶振(OCXO/TCXO)前言1 系统总体框图2 硬件清单与连接3 时间间隔测量(TDC)原理4 数字锁相环算…

基于RK3576+FPGA的无人机飞控系统解决方案

基于RK3576FPGA的无人机飞控系统解决方案设计如下&#xff1a;一、硬件架构设计‌异构计算核心模块‌主控采用RK3576处理器&#xff0c;四核Cortex-A72&#xff08;2.3GHz&#xff09;运行路径规划算法&#xff08;A*、RRT*&#xff09;&#xff0c;支持动态避障响应时间<50…

2025暑期—05神经网络-卷积神经网络

1. 卷积神经网络实际上就是避免过拟合&#xff0c;就是“特征”神经网络。这个特征和卷积核相关。卷积和相关类似&#xff0c;有点是本质属性和输出属性的感觉。着重注意三通道卷积padding 上下左右、前后都要加边池化就是解决特征过多问题&#xff0c;缩小1倍较多。均值池化&a…

Elasticsearch部署全攻略:编译安装与 Yum 安装实践,日志切割及报错处理

前言&#xff1a;在 Linux 运维工作中&#xff0c;Elasticsearch 的部署与运维是高频需求——无论是快速搭建测试环境还是构建生产级集群&#xff0c;选择合适的安装方式&#xff08;编译安装或 Yum 安装&#xff09;直接影响后续维护效率。同时&#xff0c;日志的合理切割能避…

TypeScript 配置参数详解 (tsconfig.json)

文章目录前言核心配置基本选项严格类型检查选项模块解析选项Source Map 选项实验性选项其他选项文件包含/排除选项详细用法示例最佳实践建议前言 tsconfig.json 是 TypeScript 项目的配置文件&#xff0c;用于指定编译选项和文件包含规则。以下是所有主要配置参数的中文详解&a…

Java经典笔试题

1.计算机网络传输层有哪些协议&#xff1f;分别适用于什么场景&#xff1f; TCP&#xff1a;面向连接、可靠传输&#xff08;重传机制&#xff09;&#xff0c;适用于对数据完整性要求高的场景&#xff0c;如文件传输 &#xff08;FTP&#xff09;、HTTP 通信、邮件发送&…

如何序列化和反序列化动态 XmlElement ?

有如下XML&#xff0c;Index_0-Index_N为动态的&#xff0c;N为可变数&#xff0c;如何将对象NoneXML序列化为XML&#xff0c;以及如何将XML内容反序列化为对象NoneXML&#xff1f;1、XML内容<NoneXML><Index_0><UseInSummary>0</UseInSummary><Beg…