Skip to content

网站图片太多把服务器塞满了?试试对象存储 COS

约 3479 字大约 12 分钟

腾讯云COS对象存储网站优化

2026-07-30

常见的磁盘空间不足问题

服务器磁盘告警是运维中常见的问题。排查之后发现,程序本身占用的空间并不多,真正吞噬磁盘的是用户上传的图片、视频、附件和各种静态文件。

一个运营了三五年的企业官网,上传目录里躺着几万张产品图。一个论坛系统,用户头像和帖子附件占了几十 GB。一个电商后台,商品详情页的高清大图把 40GB 的系统盘撑到了 90%。

处理方法通常是两种:要么扩容磁盘,要么清理旧文件。扩容治标不治本,下个季度问题还会回来。清理旧文件更麻烦,删错了直接影响业务。

有没有第三种方案?

有。把文件从服务器上搬走,放到对象存储 COS 中。

对象存储 COS 是怎么解决这个问题的

对象存储(Cloud Object Storage,简称 COS)是腾讯云提供的一种云上存储服务,专门用来存放非结构化数据——图片、视频、音频、文档、备份文件、日志归档等等。

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 上手指南

流程不复杂:

  1. 登录腾讯云控制台,开通对象存储 COS 服务

  2. 点击左侧菜单存储桶列表,在右边个界面中,点击「创建存储桶」

创建存储桶

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

存储桶配置详情

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

存储桶功能概览

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

上传文件

  1. 也可以通过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 的费用是分开计算的,套餐包也分为三种:

套餐类型作用
存储容量文件占用的存储空间
流量从 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回源流量包。

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 内容分发网络配置教程 · 腾讯云产品