外观
网站图片太多把服务器塞满了?试试对象存储 COS
常见的磁盘空间不足问题
服务器磁盘告警是运维中常见的问题。排查之后发现,程序本身占用的空间并不多,真正吞噬磁盘的是用户上传的图片、视频、附件和各种静态文件。
一个运营了三五年的企业官网,上传目录里躺着几万张产品图。一个论坛系统,用户头像和帖子附件占了几十 GB。一个电商后台,商品详情页的高清大图把 40GB 的系统盘撑到了 90%。
处理方法通常是两种:要么扩容磁盘,要么清理旧文件。扩容治标不治本,下个季度问题还会回来。清理旧文件更麻烦,删错了直接影响业务。
有没有第三种方案?
有。把文件从服务器上搬走,放到对象存储 COS 中。
对象存储 COS 是怎么解决这个问题的
对象存储(Cloud Object Storage,简称 COS)是腾讯云提供的一种云上存储服务,专门用来存放非结构化数据——图片、视频、音频、文档、备份文件、日志归档等等。

它和云服务器自带的云硬盘有本质区别:
| 对比维度 | 云硬盘(CBS) | 对象存储(COS) |
|---|---|---|
| 用途 | 跑操作系统、数据库、应用程序 | 存放静态文件 |
| 容量上限 | 固定规格,扩容需操作 | 几乎无限,按量使用 |
| 访问方式 | 挂载到服务器,本地路径读取 | HTTP/HTTPS URL 公网访问 |
| 费用 | 按容量规格付费,用了没用都计费 | 按实际存储量和流量计费 |
| 数据持久性 | 99.9999999% | 99.9999999999%(12个9) |
简单说:服务器负责跑程序,COS 负责存文件。两者分离之后,服务器磁盘的压力就解除了。
适用场景

1. 企业官网的图片和视频
产品展示图、案例轮播图、宣传视频这些资源通常体积大、数量多。把它们迁移到 COS 之后,服务器只负责返回 HTML 页面,图片和视频的加载通过 COS 的 URL 直接访问。
前端代码中原本引用本地路径的资源,改成 COS 外链即可:
<!-- 原来 -->
<img src="/uploads/product-01.jpg" />
<!-- 改后 -->
<img src="你的COS域名/product-01.jpg" />2. 用户上传的附件和头像
论坛、社区、SaaS 系统中的用户上传功能,是磁盘增长最稳定的贡献者。接入 COS 后,上传流程变为:用户上传文件 → 服务器接收 → 转存到 COS → 返回 COS 外链给前端。文件不持久化在服务器本地,上传量再大也不用担心磁盘告警。
3. 网站日常备份和日志归档
数据库备份文件(.sql)、全站备份压缩包、Nginx 访问日志这些数据访问频率很低,但必须保留。放到 COS 的低频存储或归档存储类型,存储成本远低于云硬盘,需要恢复时再取回。
对象存储 COS 上手指南
流程不复杂:

- 在跳转的页面中,输入名称(创建后无法更改)、选择存储桶地域(创建后无法更改)、确认数据冗余策略、确认访问权限,无误后提交即可创建

- COS 的存储桶开通后,会有非常多的功能和配置,具体可根据情况进行设置。

- 上传文件的方法有很多,其中最简单的就是通过控制台,上传文件,上传后文件将有对应的网址可以访问,也可以接入自定义域名。

- 也可以通过SDK的方式,由代码进行上传,或者使用官方工具进行文件管理。
对于已经在运行中的网站,迁移过程可以逐步进行。先迁移占用空间最大的图片目录,观察几天确认正常,再逐步迁移其他静态资源。不需要一次性全搬,也不需要对服务器做任何配置变更。
对于程序化上传的场景(如用户上传头像自动转存),可使用 COS 提供的 SDK,支持 PHP、Python、Java、Node.js 等主流语言,按 SDK 文档开发即可完成对接。
由于COS功能过多,无法在一篇教程内全部详细介绍,可以参考官方文档进行了解。对象存储官网文档
文件命名和目录结构
上传到 COS 的文件不要使用随机中文名或默认名称,比如 1.png、截图.jpg、新建文件夹/。后期文件多了以后,这种命名方式会让查找和清理变得困难。
建议按「年份 / 业务 / 类型」的层级组织:
/images/2026/cover/ # 文章封面
/images/2026/product/ # 产品展示图
/images/2026/screenshot/ # 教程截图
/attachments/2026/pdf/ # 下载附件
/backup/2026/ # 数据库备份文件命名建议包含主题和日期,例如 cos-bucket-create-20260730.png,而不是 截图1.png。这样后期在日志、外链、缓存刷新中都能更快定位到具体文件。
套餐包选购指南
COS 没有固定月租,按以下三个维度计费:
- 存储费用:根据每天实际存储的数据量计算,用多少付多少
- 请求费用:上传、下载、删除等操作次数
- 流量费用:公网下行流量(从 COS 传输到互联网)按量计费,内网流量免费
套餐包的组成
对象存储 COS 除了可以按量计费外,也可以买套餐包,进入对象存储COS资源包选购页面。

很多人第一次接触 COS 时会有个误区:以为买一个「存储套餐包」就覆盖了所有费用。实际上 COS 的费用是分开计算的,套餐包也分为三种:
| 套餐类型 | 作用 |
|---|---|
| 存储容量 | 文件占用的存储空间 |
| 流量 | 从 COS 传输到外网的数据量 |
| 读写请求 | 上传、下载、删除等 API 调用次数 |
简单理解:
- 存储包 = 文件存在 COS 里的「占位费」
- 流量包 = 别人下载你文件的「快递费」
- 请求包 = 每次上传下载操作的「手续费」
实际使用中,存储费用是可预期的(文件大小基本固定),流量费用取决于访问量(波动较大),请求费用通常占比最小。
套餐包 - 存储容量

这里面有很多资源包类型可供选择,如果是新手不太了解,推荐选择标准存储容量包即可,规格大小按预计的需要选择。
套餐包 - 流量

这里可选择的内容就更多了,每一项都可以介绍很多内容,对于新手来说,推荐选择外网下行流量包,这个可以说是必选,其它的可在熟悉产品后再开通。
特别注意的是时间,页面上有说明。例如您购买1T的外网下行流量包一年,则您从购买之日起一年内,每个月都可以抵扣1T的外网下行流量,超出部分自动按量计费。
这一点不同厂商有不同的规则,所以要注意。
套餐包 - 读写请求

这里新手仍然推荐标准存储请求包,同样特别注意的是时间,页面上有说明。例如您购买100万次的标准存储请求包一年,则您从购买之日起一年内,每个月都可以抵扣100万次的标准存储请求,超出部分自动按量计费。
这一点不同厂商有不同的规则,所以要注意。
对比扩容云硬盘:
假设一个企业官网有 50GB 图片需要存放。扩容 50GB 高性能云硬盘,每月固定支出约 35 元(无论用不用满)。COS 标准存储 50GB,每月存储费大约 6 元,外加少量请求费和流量费,实际支出通常不超过扩容成本的 30%。
更重要的一点:云硬盘扩容有上限,而 COS 没有容量天花板。
搭配 CDN 加速
对象存储 COS 解决「存在哪」的问题,内容分发网络 CDN 解决「怎么送」的问题。
静态文件放到 COS 之后,如果用户在全国各地访问,数据都是从 COS 所在的源站地域(比如广州)传输过去,跨省延迟仍然存在。
给 COS 开启 CDN 加速:用户请求图片时,CDN 从最近的节点返回缓存副本,不再每次都回源到 COS 取文件。既降低了访问延迟,又减少了 COS 的公网下行流量费用。
也可以设置CDN回源,同时购买CDN回源流量包。

安全性
COS 在数据持久性上达到了 99.9999999999%(12个9),意味着一年中数据丢失的概率极低。数据默认跨多台设备冗余存储,即使是单台物理设备故障也不影响数据完整性。
访问权限设置
COS 的权限分为两层:存储桶权限和对象权限。对象默认继承存储桶的权限,也可以单独设置。
存储桶权限(Bucket ACL)
| 权限类型 | 谁能访问 | 适用场景 |
|---|---|---|
| 私有读写 | 仅创建者及被授权的账号 | 客户资料、后台截图、内部文档 |
| 公有读私有写 | 任何人可读,仅创建者及被授权账号可写 | 文章封面、产品图、公开教程截图 |
| 公有读写 | 任何人可读写 | 不推荐,风险极高 |
新建存储桶默认是「私有读写」。如果要对外提供公开图片,调整为「公有读私有写」即可。
公有读写权限意味着任何人都能上传、覆盖、删除你的文件。曾经有用户把存储桶设为公有读写后,被写入了大量违规文件,最终账号被封。任何时候都不要使用这个权限。
对象权限(Object ACL)
每个文件可以单独设置权限,优先于存储桶权限生效。比如:存储桶是公有读的,但某个文件设了私有读写,那么只有你能访问它。
实际建议
- 公开图片:存储桶设为公有读私有写
- 需登录才能查看的附件:存储桶设为私有读写,通过签名 URL 返回给前端
- 既有公开又有私有的网站:分两个存储桶管理,一个公有读、一个私有读写
- 临时文件:设置生命周期规则,到期自动删除
防盗链
当图片 URL 被其他网站直接引用时,对方获得了展示效果,你承担了流量费用。COS 支持通过 Referer 白名单限制访问来源,只允许自己的域名引用图片。配置时注意:
- 同时添加
www和非www域名 - 移动端、子域名、CDN 域名一并检查
- 先测试再扩大限制范围,避免误拦正常访问
防盗链规则除了在 COS 控制台配置,也可以通过 EdgeOne 实现更精细的控制。可参考本站的 EdgeOne Referer 防盗链设置教程。
常见问题排查
图片上传后打不开?
按顺序排查:文件是否上传成功 → 对象路径是否写错 → 存储桶权限是否允许访问 → 防盗链是否拦截了当前域名 → 图片 URL 是否含中文或空格 → 网站 HTTPS 而图片用了 HTTP 地址。
网站开启 HTTPS 后图片不显示了?
COS 默认提供的域名支持 HTTPS。如果使用了自定义域名,需要在 CDN 或 COS 控制台上传 SSL 证书。同时检查页面中图片引用地址是否全部为 https:// 开头,混用 HTTP 会被浏览器拦截。
迁移后旧图片地址失效了?
网站中原有的图片路径需要批量替换为 COS 的新 URL。如果图片数量较多,建议用脚本或数据库批量替换,不要手动逐条修改。
总结
如果你的服务器磁盘经常告警,排查后发现是静态文件占了大头,不要急着扩容。先把图片、视频、附件、备份文件迁到对象存储 COS,让服务器回归它本来的职责——跑程序、处理业务逻辑。
迁移之后,服务器磁盘压力减轻、备份管理更清晰、前端资源加载反而因为 CDN 加速变得更快。
以上内容参考腾讯云官方文档,仅作教程用途。最新信息以腾讯云 对象存储 COS 官网页面为准。
相关资源: 为什么别人网站秒开,你的等半天?就差这一步 · 网站打开慢,不一定是服务器太差:带宽、COS、CDN 可能才是关键 · 腾讯云 CDN 内容分发网络配置教程 · 腾讯云产品