news 2026/1/9 12:20:54

别再把图片存进数据库了!从全栈视角看 OSS 的架构本质

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
别再把图片存进数据库了!从全栈视角看 OSS 的架构本质

从全栈部署实战,聊聊 OSS 对象存储的本质

在进行全栈开发时,新手往往会遇到文件存储的痛点。很多同学在初次接触云服务器部署时,对 OSS(Object Storage Service,对象存储服务)的概念感到模糊。本文将通过一个具体的全栈部署场景,通俗地解释 OSS 的本质及其解决了什么问题。

一、 一个典型的全栈部署场景

假设我们开发了一个主要包含前端、后端和数据库的全栈项目。

当代码编写完成后,常规的部署流程是:

  1. 租用一台云服务器(ECS)。
  2. 将前后端代码上传至服务器。
  3. 配置数据库(以轻量级的 SQLite 为例,数据库本质就是一个.db文件,也存储在云服务器的磁盘中)。

如果此时有用户(假设叫小明)注册了一个账号,他的文本信息(如用户名、密码哈希、手机号)会通过后端写入服务器上的数据库文件中。到目前为止,一切运行良好。

二、 痛点:当需求增加了“图片上传”

随着项目迭代,我们增加了“用户上传头像”或“发布带图动态”的功能。此时,系统面临一个新的问题:用户上传的图片存哪里?

无论是选择将图片转换成二进制直接存入数据库(方案 A),还是保存在服务器本地的文件系统文件夹中(方案 B),都会给我们的应用服务器带来巨大的压力和扩展瓶颈。

此时的架构可以用下图表示,你会发现所有的压力都集中在了这一台服务器内部:

云服务器内部压力山大
1. 上传高频图片请求
2a. 写入二进制大数据
2b. 写入本地磁盘文件
数据库
云服务器 ECS (应用后端)
本地文件系统
用户浏览器/前端
痛点A: 读写慢、数据库体积迅速膨胀
痛点B: 无法横向扩展、占用昂贵的公网带宽

如上图所示,应用服务器既要处理业务逻辑,又要扛住文件的 I/O 压力,这显然不是一个可持续的架构。

三、 解决方案:OSS 的登场

为了解决上述问题,OSS(对象存储服务)应运而生。

OSS 的本质,可以理解为一个独立于我们应用服务器之外的、专门用来存储海量文件的“超大云端硬盘”。

引入 OSS 后,我们的核心思路是**“存储分离”**:

  1. 文件存 OSS:用户上传的实体图片,直接存储到 OSS 的存储桶中。
  2. 数据库存引用:我们的数据库中只存储这张图片在 OSS 上的访问链接(URL),这是一段很短的文本。

引入 OSS 后的上传与读取流程,变得清晰且高效:

用户浏览器/前端应用服务器 (后端)数据库 (只存文本)OSS 对象存储 (存文件)上传流程 (写入)1. 上传图片文件流2. 后端调用SDK将文件流转存至OSS3. 返回文件唯一的公网 URL4. 将该 URL 存入用户表字段存储成功5. 返回操作成功访问流程 (读取)6. 请求用户资料7. 查询用户数据(拿到图片URL)返回数据 (含 URL: https://oss.com/a.jpg)返回包含 URL 的 JSON 数据8. 浏览器直接根据 URL 加载图片返回图片本身 (不经过应用服务器)用户浏览器/前端应用服务器 (后端)数据库 (只存文本)OSS 对象存储 (存文件)

通过上面的时序图可以看到,在读取图片时(步骤 8),流量是直接在用户浏览器和 OSS 之间产生的,完全绕过了我们的应用服务器,极大地减轻了服务器的带宽压力。

四、 总结

对于程序员而言,OSS 并非什么高深莫测的技术。

从代码层面看,它就是一组配置(Endpoint、Bucket、AccessKey)和一个 SDK 调用。但从架构层面看,它实现了应用逻辑与静态资源的解耦

它让应用服务器专注于处理业务逻辑(计算),让数据库专注于管理结构化数据(索引),而将笨重的文件存储和分发任务,交给了更专业、更廉价的 OSS。这就是为什么在现代 Web 开发中,OSS 几乎成为了标配。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/12 13:25:55

终极指南:用ReplayBook轻松搞定英雄联盟回放管理

终极指南:用ReplayBook轻松搞定英雄联盟回放管理 【免费下载链接】ReplayBook Play, manage, and inspect League of Legends replays 项目地址: https://gitcode.com/gh_mirrors/re/ReplayBook 还在为英雄联盟回放文件杂乱无章而烦恼吗?ReplayBo…

作者头像 李华
网站建设 2025/12/12 13:23:54

AI 工程师的破茧之路!告别迷茫,从零到实战的5步进阶攻略

你是否也曾感到,在浩瀚的 AI 学习海洋中迷失方向?无数教程刷到烂,Demo 搭到一半就搁置,最终只剩下电脑里一堆“未完成”的项目?别沮丧,这几乎是每一个 AI 探索者的必经之路。但今天,我要为你揭示…

作者头像 李华
网站建设 2026/1/4 12:30:14

人工智能作业

一、简述CV技术的应用现状计算机视觉(CV)技术正从实验室走向大规模产业应用,全面进入与实体经济深度融合的 “AI视觉” 时代。其应用现状可以概括为以下五个核心方面:1. 工业与制造业:在工业质检、自动化引导、物流分拣…

作者头像 李华
网站建设 2025/12/19 6:33:06

Facebook iOS SDK 完整开发指南:从零基础到实战精通

Facebook iOS SDK 作为连接 iOS 应用与全球最大社交平台的重要桥梁,为开发者提供了丰富的社交功能和数据分析能力。这个官方工具包让应用集成Facebook登录、分享、广告等功能变得前所未有的简单。🎯 【免费下载链接】facebook-ios-sdk facebook/facebook…

作者头像 李华
网站建设 2025/12/12 13:11:21

Qwen3-32B-MLX-8bit:双模智能重构企业AI应用范式

Qwen3-32B-MLX-8bit:双模智能重构企业AI应用范式 【免费下载链接】Qwen3-32B-MLX-8bit 项目地址: https://ai.gitcode.com/hf_mirrors/Qwen/Qwen3-32B-MLX-8bit 导语:大模型进入"按需智能"时代 当60%企业因算力成本放弃大模型应用&am…

作者头像 李华
网站建设 2025/12/27 13:43:15

图片查看工具终极指南:解锁PicView的隐藏功能与实战技巧

图片查看工具终极指南:解锁PicView的隐藏功能与实战技巧 【免费下载链接】PicView Fast, free and customizable image viewer for Windows 10 and 11. 项目地址: https://gitcode.com/gh_mirrors/pi/PicView 在数字图像处理日益普及的今天,PicVi…

作者头像 李华