Appearance
文件传输协议
在系统设计中,文件的传输与共享通常依赖标准化协议。不同协议在安全性、性能、使用场景上差异明显,合理选型可以显著降低系统复杂度与运维成本。
本章节主要介绍 FTP、SFTP、S3、SMB 四种常见方案。
FTP(File Transfer Protocol)
简介
FTP 是一种传统的文件传输协议,采用客户端 / 服务器模型,通过控制连接发送命令,通过数据连接传输文件内容。
特点
明文传输用户名、密码和数据
支持主动模式与被动模式
协议历史悠久,兼容性强
优缺点
优点
- 实现简单
- 工具和客户端丰富
缺点
- 无加密,安全性差
- 对防火墙和 NAT 不友好
- 不适合公网和敏感数据场景
适用场景
- 内网测试环境
- 历史系统兼容需求
SFTP(SSH File Transfer Protocol)
简介
SFTP 是基于 SSH 协议的文件传输子协议,与 FTP 在实现上完全不同,仅名称相似。
特点
单一 TCP 连接(默认 22 端口) 全程加密(认证 + 数据) 支持权限控制与审计
优缺点
优点
- 安全性高
- 穿透防火墙能力强
- 运维和配置成本低
缺点
- 性能略低于明文协议
- 依赖 SSH 服务
适用场景
- 安全文件上传 / 下载
- 自动化任务、运维系统
- 企业内外网文件交换
- 工程实践中的通用首选方案
S3(Object Storage / S3 API)
简介
S3 是对象存储模型的代表,通过 HTTP/HTTPS API 访问数据,不是传统意义上的文件系统。
核心概念
Bucket:逻辑容器
Object:对象(Key + Data + Metadata)
Prefix:模拟目录结构
特点
无目录、无文件锁概念
支持分片上传、断点续传
高可用、高扩展
优缺点
优点
- 适合海量数据存储
- 易于横向扩展
- 云原生友好
缺点
- 延迟相对较高
- 不适合频繁小文件随机读写
- 不符合 POSIX 文件语义
适用场景
- 对象存储
- 备份、归档、日志
- 分布式系统、云服
SMB(Server Message Block)
简介
SMB 是一种网络文件系统协议,目标是让远程文件像本地文件一样被访问。
特点
支持目录操作、文件锁、权限继承
与操作系统深度集成
Windows 环境下使用最广泛
优缺点
优点
使用透明,应用无感知
适合共享目录和协作办公 缺点
对网络延迟敏感
跨公网性能较差
配置和安全策略复杂
适用场景
- 局域网文件共享
- 企业内部文件服务器
- NAS / 文件集中管理
总结
| 协议 | 模型 | 是否加密 | 语义 | 典型场景 |
|---|---|---|---|---|
| FTP | 文件传输 | 否 | 文件 | 遗留系统 |
| SFTP | 文件传输 | 是 | 文件 | 安全传输 |
| S3 | 对象存储 | 是 | 对象 | 云与海量数据 |
| SMB | 网络文件系统 | 可选 | 文件系统 | 内网共享 |