用对象存储 OBS 做静态资源托管的实践笔记

举报
yd_297008388 发表于 2026/11/05 09:48:03 2026/11/05
【摘要】 记录把项目静态资源从云服务器本地磁盘迁移至华为云对象存储 OBS 的实战笔记,涵盖桶规划与 obsutil 增量同步、权限收紧与防盗链/CORS 配置避坑,以及多版本与生命周期规则等日常运维经验。

最近把项目里的图片、附件和前端静态文件从云服务器本地磁盘迁到了华为云对象存储 OBS,整体过程比预想的顺。这篇笔记记录一下迁移的步骤、几个容易踩的坑,以及日常运维上我觉得值得固化下来的做法。

一、为什么要迁

原来静态文件都放在 ECS 的数据盘上,问题慢慢攒了几个:磁盘容量跟着业务涨,扩容要停机;备份靠手动打包,经常忘;图片一多,服务器带宽被下载流量占满,接口响应跟着变慢。OBS 按量计费、容量不用预估,文件天然多份冗余,正好对症。

二、迁移步骤

第一步是建桶。桶名全局唯一,区域要和 ECS 选同一个,后面走内网 endpoint 传输不花公网流量费。存储类别先选标准存储,访问量低的老文件后面再用生命周期规则转低频。

第二步传文件。少量文件直接在控制台拖拽就行;这次量比较大,用的是 obsutil 命令行工具,sync 命令把本地目录和桶做增量同步,断点续传省了不少事。命令大概是:

obsutil sync /data/static obs://my-bucket/static -acl=public-read

第三步改引用。把代码里拼本地路径的地方换成 OBS 的访问域名,历史数据用脚本批量更新数据库里存的 URL 字段。建议保留一段时间的双读兼容:新地址读不到时回退到旧路径,等确认无误再下线本地文件。

三、三个坑

权限别图省事全开。 桶可以设公共读,但写权限一定要收紧:业务程序用单独的 AK/SK,只授权到指定桶,别用主账号密钥。之前见过把桶设成公共读写的案例,被人当免费图床不说,还可能产生大额流量费。

防盗链要配。 公共读的资源裸奔在公网上,别人盗链会直接消耗你的流量。在桶的防盗链里配 Referer 白名单,只放行自己的域名,空 Referer 是否允许按业务决定(App 内嵌场景常需要允许)。

跨域别忘了。 前端页面用 JS 直接读 OBS 资源时,桶要配 CORS 规则,允许的来源、方法(GET/HEAD)和响应头提前配好,不然浏览器控制台一片红色报错。

四、日常运维的两个习惯

一是开版本控制和生命周期:桶开启多版本后误删能找回;生命周期规则把 90 天前的日志类文件自动转归档存储,成本能降一大截。二是重要文件开服务端加密(SSE-KMS),配置几乎零成本,合规上也交代得过去。

五、小结

OBS 这类对象存储的迁移门槛主要在规划:桶怎么分、权限怎么收、域名和防盗链怎么配,一次想清楚,后面基本不用操心。真正省下来的,是磁盘扩容、备份和带宽这三笔长期账。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。