使用docker-compese部署SFTPGo详解
官网:SFTP & FTP as a Managed Service (SaaS) and On-premise
一、SFTPGo简介
SFTPGo 是一款功能强大的文件传输服务器软件。它支持多种协议(SFTP、SCP、FTP/S、WebDAV、HTTP/S)和多个存储后端。
借助 SFTPGo,您可以利用本地和云存储后端在内部或与业务合作伙伴交换和存储文件,并使用您已经熟悉的相同工具和流程。
WebAdmin UI 允许轻松创建和管理您的用户、文件夹、组和其他资源。
WebClient UI 允许最终用户更改其凭据、在浏览器中浏览和管理其文件,并设置适用于 Microsoft Authenticator、Google Authenticator、Authy 和其他兼容应用程序的双因素身份验证。
二、SFTPGo配置文件
###创建数据目录
# mkdir /opt/sftpgo/data
###数据目录授权,此步骤跳过会造成服务启动时提示创建目录没权限
# chmod -R 777 /opt/sftpgo/data
###创建yml配置文件
# vi /opt/sftpgo/docker-compose.yml
version: '3.7'
services:sftpgo:container_name: sftpgoimage: drakkan/sftpgo:v2.6.4-alpineenvironment: SFTPGO_FTPD__BINDINGS__0__FORCE_PASSIVE_IP: 192.168.1.1 #FTP服务器访问地址SFTPGO_FTPD__BINDINGS__0__PORT: 2121 #FTP文件传输协议端口SFTPGO_FTPD__PASSIVE_PORT_RANGE__END: 50100 #FTP数据传输范围(结束端口)SFTPGO_FTPD__PASSIVE_PORT_RANGE__START: 50000 #FTP数据传输范围(开始端口)SFTPGO_SFTPD__BINDINGS__0__PORT: 2022 # SFTP安全文件传输协议端口SFTPGO_WEBDAVD__BINDINGS__0__PORT: 10080 #WebDAV网页文件传输协议端口volumes:- ./data/data:/srv/sftpgo- ./data/config:/var/lib/sftpgoports:- 8080:8080 #SFTPGo网页管理端口- 2022:2022- 2121:2121- 50000-50100:50000-50100- 10080:10080restart: always
三、SFTPGo使用
1.初始化
首次登录地址 http://localhost:8080/web/admin,请替换为适当的 IP 地址,创建第一个管理员和一个新的 SFTPGo 用户

注:
- Storage:支持多种存储协议(本地磁盘、S3、SFTP、Azure Blob、HTTP协议等)
- Root directory :选择本地存储时,此存储路径是容器内的路径
2.创建虚拟文件夹
虚拟文件夹是 SFTPGo 虚拟路径与用户主目录外部或其他存储提供程序上的文件系统路径之间的映射。

3.创建用户组
使用组允许您将设置分配给组一次,而不是将设置分配给每个用户多次,从而简化了多个账户的管理。
SFTPGo 支持以下类型的组:主要组、辅助组、成员身份组

注:
- File system :用户组可以创建关联该组的数据目录
- Virtual folders:关联已有的虚拟文件夹
4.创建用户
创建用户时可以关联用户组和虚拟文件夹,创建用户时又很多附件权限可选择(ACLs、密钥证书、组、虚拟目录等高级选项)
创建用户时,会默认创建一个存储目录。`例:/srv/sftpgo/data/admin` 此地址可以手动修改
5、使用ftp协议访问
5.1.使用windows文件资源管理器访问
打开windows的“文件资源管理器” — 输入ftp地址“ftp://192.168.1.1/” — 输入账户密码,登录成功后就可以看到该用户所属的默认数据目录和已授权的虚拟文件夹了。
5.2.使用工具访问
可下载FileZilla、WINSCP客户端,免费且支持多种协议连接。使用工具登录时需注意不通协议使用端口号不同。建议使用sftp加密协议传输文件,更加安全。
5.3 服务端口
查看服务状态和服务端口号

SFTPGo还有很多高级功能,大家可以慢慢研究~~~
相关文章:
使用docker-compese部署SFTPGo详解
官网:SFTP & FTP as a Managed Service (SaaS) and On-premise 一、SFTPGo简介 SFTPGo 是一款功能强大的文件传输服务器软件。它支持多种协议(SFTP、SCP、FTP/S、WebDAV、HTTP/S)和多个存储后端。 借助 SFTPGo,您可以利用本地…...
Ajax基础总结(思维导图+二维表)
一些话 刚开始学习Ajax的时候,感觉很模糊,但是好像学什么都是这样的,很正常,但是当你学习的时候要持续性敲代码,边敲代码其实就可以理解很多了。然后在最后的总结,其实做二维表之后,就可以区分…...
Spring Task和WebSocket使用
在现代 Web 应用中,WebSocket 作为一种全双工通信协议,为实时数据传输提供了强大的支持。若要确保 WebSocket 在生产环境中的稳定性和性能,使用 Nginx 作为反向代理服务器是一个明智的选择。本篇文章将带你了解如何在 Nginx 中配置 WebSocket…...
微信小程序 本地调试和vconsole可以 但在体验上页面不请求数据
微信小程序页面不请求数据 本地调试和vconsole可以 但在体验版页面不请求数据,如遇到这类问题基本都是一样的解决办法 1、如何调试找到问题 首先要把小程序本地设置的不校验合法域名关掉,不然本地一直都是好的 然后通过本地真机调试打断点找到问题位…...
QT:将QTableWidget内容写入txt文件中
文章详请:最近在做手在眼上的标定,首先要采集机械臂数据和图像数据,我使用tablewidget进行机械臂数据的显示,最后的计算需要将机械臂位姿数据存储在txt文件中。 引用:Qt如何保存tableWidget数据?_qt table…...
前端面试题(六)
1.let,var,const区别 1.作用域: var:var声明的变量存在函数作用域或全局作用域,这意味着它们在声明它们的函数内部可见,而不在块级作用域内可见。 let和const:let和const声明的变量存在块级作用域,这…...
「Mac畅玩鸿蒙与硬件35」UI互动应用篇12 - 简易日历
本篇将带你实现一个简易日历应用,显示当前月份的日期,并支持选择特定日期的功能。用户可以通过点击日期高亮选中,还可以切换上下月份,体验动态界面的交互效果。 关键词 UI互动应用简易日历动态界面状态管理用户交互 一、功能说明…...
Leetcode581. 最短无序连续子数组(HOT100)
链接 我的代码: class Solution { public:int findUnsortedSubarray(vector<int>& nums) {vector<int> res nums;sort(res.begin(),res.end());int l 0,r nums.size()-1;while(nums[l]res[l]){l;if(lnums.size()){return 0;}}while(nums[r]res…...
HTML前端开发-- Flex布局详解及实战
引言 Flex布局,全称为Flexible Box Layout,是一种现代CSS布局技术,它提供了一种更有效的方式来设计响应式布局和复杂页面布局。本文将详细介绍Flex布局的基本概念、属性以及实战应用。 一、基本概念 Flex布局的核心是Flex容器(…...
基于JWT跨语言开发分布式业务系统的挑战与实践:多语言协作的最佳方案
在现代分布式架构下,开发团队往往由来自不同技术栈和开发语言的工程师组成。如何有效地管理这些开发人员的协作,尤其是在实现跨语言的认证与授权机制时,成为了开发者面临的一个重大挑战。JSON Web Token(JWT)作为一种轻…...
二分法篇——于上下边界的扭转压缩间,窥见正解辉映之光(2)
前言 上篇介绍了二分法的相关原理并结合具体题目进行讲解运用,本篇将加大难度,进一步强化对二分法的掌握。 一. 寻找峰值 1.1 题目链接:https://leetcode.cn/problems/find-peak-element/description/ 1.2 题目分析: 题目要求返回数组内…...
什么是 Kata Containers?
什么是 Kata Containers? Kata Containers 是一种结合了容器技术和虚拟机技术的轻量级运行时,旨在提供容器的速度和虚拟机的安全性。它将容器运行在一个隔离的虚拟机中,从而大幅提升安全性,同时保持容器的高效性。 Kata Contain…...
SpringMvc项目配置RabbitMq
前言:只有消费者部分,没有记录生产者部分 结构图 配置类 可以xml配置,也可以配置类,二者可以相互转化。两种bean注入的方式。 import org.springframework.amqp.rabbit.connection.CachingConnectionFactory; import org.spring…...
shell编程(4)脚本与用户交互以及if条件判断
shell编程(4)脚本与用户交互以及if条件判断 声明! 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章 笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,…...
vue2组件跨层级数据共享provide 和 inject
在 Vue 2 中,provide 和 inject 的功能也是可以使用的,虽然在 Vue 3 中它们成为了组合式 API 的一部分。在 Vue 2 中,provide 和 inject 主要是用于祖先组件和后代组件之间的数据共享,而不是通过 props 和 emit 逐层传递。 Vue 2…...
springboot/ssm校园闲置物品交易系统ava大学生二手闲置交易平台web二手源码
springboot/ssm校园闲置物品交易系统ava大学生二手闲置交易平台web二手源码 基于springboot(可改ssm)htmlvue项目 开发语言:Java 框架:springboot/可改ssm vue JDK版本:JDK1.8(或11) 服务器:tomcat 数…...
Redis实现限量优惠券的秒杀
核心:避免超卖问题,保证一人一单 业务逻辑 代码步骤分析 全部代码 Service public class VoucherOrderServiceImpl extends ServiceImpl<VoucherOrderMapper, VoucherOrder> implements IVoucherOrderService {Resourceprivate ISeckillVoucher…...
Linux centOS 7 安装 rabbitMQ
1.安装前需要了解,rabbitmq安装需要先安装erlang,特别注意的是erlang与rabbitmq的版本之间需要匹配。 el/7/rabbitmq-server-3.10.0-1.el7.noarch.rpm - rabbitmq/rabbitmq-server packagecloud 3.10版本的rabbitmq 对于erlang的版本要求可以看此连接…...
活着就好20241202
亲爱的朋友们,大家早上好!今天是2024年12月2日,第49周的第一天,也是十二月的第二天,农历甲辰[龙]年十月三十。在这个全新月份的开始、阳光初升的清晨,愿第一缕阳光悄悄探进你的房间,带给你满满的…...
自由学习记录(28)
C# 中的流(Stream) 流(Stream)是用于读取和写入数据的抽象基类。 流表示从数据源读取或向数据源写入数据的矢量过程。 C# 中的流类是从 System.IO.Stream 基类派生的,提供了多种具体实现,每种实现都针对…...
用Python从零实现一个卡尔曼滤波器(附完整代码与可视化)
用Python从零实现一个卡尔曼滤波器(附完整代码与可视化) 卡尔曼滤波是工程领域最经典的状态估计算法之一,广泛应用于导航、控制、信号处理等领域。但对于初学者而言,面对复杂的矩阵运算和抽象的概率推导常常无从下手。本文将用Pyt…...
手搓LabVIEW声音采集系统——从调参到装X全攻略
Labview程序开发——声音采集系统 基于 Labview软件,以声卡为数据采集设备开发数据采集处理系统。 系统功能应包括: 1)声卡参数设置:包括设备ID号,采样模式,每通道采样点 数,采样率,通道数等参数设置; 2) 文件操作:实现…...
从汽车以太网到智能座舱:TSN的CBS和抢占式TAS如何保障你的行车安全与娱乐体验
从汽车以太网到智能座舱:TSN的CBS和抢占式TAS如何保障行车安全与娱乐体验 当你在高速公路上开启自动驾驶功能,车辆需要同时处理毫米波雷达的实时数据、中控屏的4K视频流以及车窗升降的指令——这些需求对网络传输的要求截然不同。传统车载网络架构正面临…...
STM8/STM32 GPIO触摸按键实现与优化
基于STM8/STM32的GPIO触摸按键实现技术解析1. 触摸按键技术概述1.1 传统方案与MCU实现对比在消费类电子产品中,触摸按键的实现通常有两种主流方案:专用触摸IC方案:集成度高但成本较高MCU GPIO方案:利用通用微控制器实现࿰…...
终极JavaScript模块系统指南:ES Modules与CommonJS实战解析
终极JavaScript模块系统指南:ES Modules与CommonJS实战解析 【免费下载链接】50projects50days 50 mini web projects using HTML, CSS & JS 项目地址: https://gitcode.com/GitHub_Trending/50/50projects50days JavaScript模块系统是现代前端开发的核心…...
LSTM时间序列预测模型与RWKV7-1.5B-G1A的融合应用:金融文本数据挖掘
LSTM时间序列预测模型与RWKV7-1.5B-G1A的融合应用:金融文本数据挖掘 1. 金融数据分析的现状与挑战 金融市场的预测一直是数据分析领域最具挑战性的任务之一。传统方法主要依赖历史价格数据,使用统计模型或机器学习算法进行趋势预测。然而,这…...
Homepage终极灾难恢复指南:保障业务连续性的完整策略
Homepage终极灾难恢复指南:保障业务连续性的完整策略 【免费下载链接】homepage 一个高度可定制的主页(或起始页/应用程序仪表板),集成了Docker和服务API。 项目地址: https://gitcode.com/GitHub_Trending/ho/homepage Ho…...
Ice终极指南:3步打造Mac菜单栏的清爽工作空间
Ice终极指南:3步打造Mac菜单栏的清爽工作空间 【免费下载链接】Ice Powerful menu bar manager for macOS 项目地址: https://gitcode.com/GitHub_Trending/ice/Ice Ice是一款专为macOS设计的强大菜单栏管理器,能够帮助用户有效整理和优化混乱的菜…...
深度解析:PaperZZ AI 如何把 “文献综述难产” 变成 “10 分钟定稿”?
Paperzz-AI官网免费论文查重复率AIGC检测/开题报告/文献综述/论文初稿/期刊论文paperzz - 文献综述https://www.paperzz.cc/journalsReviewed 提到本科毕业论文,比起提笔写正文,绝大多数同学的噩梦都是文献综述。这不仅是论文的开篇,更是评判…...
从动漫生成到金融风控:LSGAN损失函数在5个行业的落地对比(附数据集下载)
从动漫生成到金融风控:LSGAN损失函数在5个行业的落地对比 当生成对抗网络(GAN)遇上最小二乘损失函数(LSGAN),会擦出怎样的火花?这个看似简单的数学改进,正在悄然改变多个行业的AI应用…...
