惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

有赞技术团队
有赞技术团队
小众软件
小众软件
The Cloudflare Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园_首页
酷 壳 – CoolShell
酷 壳 – CoolShell
爱范儿
爱范儿
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
雷峰网
雷峰网
Jina AI
Jina AI
博客园 - 【当耐特】
V
Visual Studio Blog
美团技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
罗磊的独立博客
大猫的无限游戏
大猫的无限游戏
量子位
IT之家
IT之家
G
Google Developers Blog
V
V2EX
The GitHub Blog
The GitHub Blog
月光博客
月光博客
GbyAI
GbyAI

博客园 - 升讯威在线客服系统

使用 .NET MAUI Blazor Hybird APP 重构在线客服工作台,实现对 MAC 的完美支持 5年,一个程序员是如何把私有化在线客服系统做到第一名的 使用 dotnet-counters 观测升讯威客服系统内存占用情况和数据吞吐性能 详解 Docker 环境变量技术,以及如何通过环境变量一键部署客服系统 如何在跨国网络环境中稳定运行在线客服系统:1.网络路径的不可控性 谈谈一款 .NET 客服系统是如何建立客户信任的 我为何选择私有化客服系统作为独立开发的方向 RAG 还是 Lucene:私有化部署客服系统的 AI 知识库架构选型 手把手教你部署一套免费私有化客服系统 高性能客服系统技术内幕:通过 SpinWait 自旋等待结构体提升高频消息分发性能 用 DeepSeek 给你的 APP 和网站上一个 免费的 24小时智能客服吧! 薅羊毛:用豆包AI给你的APP和网站整一个 免费的 24小时智能客服吧! 从零开始构建实时客服系统(.NET架构系列)- 序章:为什么要讲实时客服系统的工程之道 独立开发者的痛点反思:网站太土,信任就没了 独立开发者的 2025:我为什么还在做一个“看起来很普通”的客服系统 客服系统前端主题配色动态切换的一种实现思路(含代码) .net 行不行?在线客服系统成功支持客户双11大促,21客服在线,高峰超300会话并发 独立开发经验谈:用视频快速讲解你的产品核心竞争力 独立开发在线客服系统手记:实现对 PostgreSQL 的支持,以及与 MySQL 的对比 独立开发在线客服系统 5 年,终于稳如老狗了:记录我踩过的坑(一) 独立开发在线客服系统,我是如何与杀毒软件误报斗智斗勇的 我是如何实现在线客服系统的极致稳定性与安全性的 浅谈开源在线客服系统与 APP 集成的技术方案与优劣势 独立开发者的在线客服系统:从 0 到 300 余万次会话,1700 余万条消息 在线聊天系统中的多窗口数据同步技术解密 一文(加代码示例)说透在线客服系统技术难点 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
我是如何为客服系统自建文件服务器,节省运营成本的
升讯威在线客服系统 · 2026-05-08 · via 博客园 - 升讯威在线客服系统

我是一个独立开发者,已经持续多年开发维护一款自己的产品:升讯威在线客服与营销系统。从一开始的偶有用户尝试,到如今线上环境和私有化部署均有了越来越多的稳定用户,在这个过程中,我也在不断的提高着自己的技术广度和深度,我希望通过博客与更多朋友分享自己的学习过程和心得体会。

在本篇博客中,我会系统阐述我的升讯威客服系统线上使用环境(SaaS环境)是如何解决文件上传、存储、查看的问题的。

服务端主程序自带文件服务

文件上传和存储使用主要服务于客服与访客聊天过程中的文件收发。在服务端主程序中直接集成文件上传下载功能,这是最简单,最容易部署的方式。升讯威客服系统也实现了这种方式,对于业务量不是很大的客户,这几乎是最佳选择,不用额外部署独立的文件服务器,既方便,又节省成本。

但是对于业务量较大的客户来说,这种通过服务端主程序提供文件上传下载的方式,会有一个比较大的弊端,就是占用主程序服务器的带宽。这会产生两个影响:

影响服务器主程序的承载能力

升讯威客服系统本身对带宽要求很小,5 Mbps 即可承载 2000 访客同时在线。但是,如果服务器的带宽需要同时为文件上传下载服务,则一个大图上传或查看瞬间就能把带宽拉满,造成用户使用瞬时卡顿。如果是上传或下载查看视频文件,则很可能会对带宽产生较长时间的影响,这对业务量较大,特别是与业绩挂钩的重要场景来说,是不可接受的。

提高主程序服务器的带宽成本

通常云服务器附带的带宽都很贵,如果要在主程序服务器上兼顾业务数据的传输和文件上传下载,则需要购买更高的带宽,在业务量较大的情况下,这是相当大的一笔支出。

使用公有云 OSS 的优劣势

一个自然而然的方案,是使用公有云 OSS 文件存储服务。好处是接入方便,文件传输不占用主程序服务器的带宽。但是,又一个但是,这同样有两个弊端:

部分客户需要绝对私有化部署

部分客户需要绝对安全可控。常见于政府、金融、保险、医疗等行业,这部分客户不接受公有云文件存储方案。

成本没有想像的低

这是我在自己的官方在线使用环境(SaaS 环境)实际使用近一年后的体会:成本很高。以我使用的阿里云 OSS 文件存储服务为例,实际需要支出的费用包括:

  • 文件存储费。随着业务量提升,费用会显著提升,这部分费用倒也可以理解。
  • 流量费。有些人会忽略,但这部分费用不低,在使用量大的使用,会是相当大的一笔支出,平台会推荐你绑定 CDN 购买流量包,CDN 流量包的价格会比 OSS 流量价格稍低。
  • 接口操作费。这是一个奇葩的收费点,除了文件上传下载之外,你调用其它的功能接口,会产生费用,包括你在阿里云 WEB 后台,对文件进行批量操作,例如查一下目录大小,批量删除文件,不好意思是计费的。
  • CDN 加速流量费。为了节省 OSS 本身的流量费,以及据说可以加速不同地区访问速度,那么购买 CDN 流量包,但是在购买时,阿里云按不同的国家、地区、港澳台分开卖。
  • CDN 回源流量费。CDN 服务回源请求内容的流量,不包括在 CDN 加速流量包里面,要另外购买。
  • HTTPS 请求数费。是不是有点莫名其妙了,是的,当你给 CDN 请求绑定 HTTPS 证书之后(这是必须的,否则 HTTPS 页面无法加载 HTTP 内容),阿里云会按你请求的 次数 计费,这也需要购买套餐包。
  • 内容安全审计费。为了防止用户上传不合适的内容,购买由阿里云提供的内容审计服务,用户量业务量上来之后,这也是相当一笔支出,同样的,阿里云按你要审计的内容不同,又拆成了不同的套餐包分开售卖。这一项不购买是否可以呢?这一项虽然不是必选,但你必须自己注意审核用户上传的内容,否则被阿里云审计到,会被停服。从这一点说,我感觉无轮你买不买阿里云都会执行内容审计,只是让你为这个行为来付费。

还有一个隐含的成本,会被刷流量,我就被刷了,从某一天始始出流量直线拉升,连接数天持续维持在平时的数十倍规模,但主程序服务器及其它各项数据都正常,用户量正常,业务量正常,系统运行正常。并且在被刷之后的几天,就接到了阿里云代理商的推销电话,我无意关联引申什么,事情就是这么个事情。这是我彻底放弃阿里云 OSS 的一个关键导火索。

使用海外线路的优劣势

在使用了近一年阿里云的 OSS 服务后,随着升讯威客服系统在线使用环境(SaaS环境)用户量业务量的快速增长,交给阿里云的费用越来越多,购买的各种套餐消耗的越来越快。因为 SaaS 环境并不收费,是全免费使用的,阿里云这部分成本有点让人吃不消了。我把目光转向了海外 OSS 文件存储服务。

优势自不必说,免费的存储空间额度,流量额度堪称慷慨!至于什么各种流量包,还 TM HTTPS 请求数费用,更是闻所未闻。

一切都很完美,唯一一个弊端:中国大陆的部分用户访问存在障碍。虽然我提供的在线使用环境是免费使用的,但偶发的文件上传下载失败,会让用户误认为是系统本身的 BUG,这会带来负面影响。

自建文件服务器

至此,只剩下唯一的选择:自建文件服务器,用来满足大业务量场景下的文件上传、存储、下载。

这个想法我在早些时候有过,当时权衡服务器成本(硬盘和带宽),加上 CDN 成本之后,感觉并不合算,就一直细想,没落实。但随着自己线上环境使用量的增涨,受限于阿里云 OSS 的各种费用和海外 OSS 在国内的使用障碍,我只能开始研究自建文件服务器。

我把目光落在一台阿里云促销时购买的 200元/年 云服务器上,这台服务器配置不高,但带宽却不低,再一查居然有 80 GB 的磁盘存储空间,这不正好合适在上面搭一个文件服务吗?

并且我不知怎么的当时灵光一闪,感觉自己过去被“必须上CDN”这个思维给禁锢了,为什么必须上 CDN?阿里云服务器本身访问速度是能保证的,并且由于客服系统的特殊性,我不需要像大型互联网公司一样实现非常广泛的、高并发场景的文件分发。直白点说,文件服务器是服务于升讯威客服系统中的客服和访客聊天时,上传文件、查看文件用的,不存在单个文件需要被非常多的人同时访问的情况。只要能保证上传速度、访问速度即可,其实在这种情况下上 CDN 作用也是有限的,因为大部分流量都会回源,而 CDN 缓存的内容都是聊天记录中的图片和文件,除了客服和访客本人,其它人也看不到,客服也不会高频查看。

如此说来,这200元/年的服务器,岂不就完美解决了线上使用环境的文件存储和使用难题?剩下的事就是写一个与现有接口兼容的文件服务即可。

自建文件服务器的思路

我的目标很明确,我不需要一个全能的、强大的独立文件服务器,我需要的是一个服务于升讯威客服系统的文件服务组件。在这个明确的目标之下,许多事是可以简化的,例如鉴权的流程,跨域的配置,都可以直接在文件服务器的配置文件中约定,不需要提供管理界面去配置。对我来说要实现的功能,核心就一个:

  • 预签名上传。这是为了避免文件先上传主程序服务器再转存文件服务器,这样就实现不了避免占用主程序服务器带宽的目的了。预签名上传可以由服务器提供一个一次性的上传地址,用于客服端或访客端向文件服务器直传文件。

实现的方法并不复杂,业内主流的方案是按 AWS S3 的接口来实现即可。

有了这个独立的文件服务器组件,我的线上使用环境彻底解决了文件上传、存储、使用的长期难题,并且由于是与主程序服务彻底解耦的,未来即便阿里云这个 200 元/年的服务器用不了或者无法满足业务需要了,我也可以单独把这个文件服务轻松的迁移到任何服务提供商。

对于私有化部署的客户来说,也为他们提供了一个不使用公有云 OSS 服务的新方案,解决他们过去在不使用公有云 OSS 的情况下,只能用主程序服务来提供文件上传下载的弊端。

如果您感兴趣:

升讯威客服系统仍处于不断演进的过程中。
如果您曾经构建或部署过实时聊天系统,我非常期待与您交流心得。

无论您倾向于使用托管版还是自行部署(Self-hosting),都可以免费试用。