网站图片迁移到OSS对象存储的完整操作流程指南
做个企业站,三年下来图片攒了20多个G,每次用户打开产品详情页,服务器带宽直接拉满。这事儿不少站长都遇到过。把图片搬到OSS对象存储上,服务器只管跑程序,图片走CDN加速,打开速度快一倍不止。今天就手把手走一遍完整流程。
第一步:开通对象存储并创建Bucket
以阿里云OSS为例,登录控制台后找到对象存储OSS,点击创建Bucket。几个关键参数要选对:读写权限选“公共读”,否则图片无法被浏览器直接访问;区域选离你服务器最近的,同区域内网传输不收外网流量费;存储类型选“标准存储”,热数据用这个最划算。Bucket名称记住,后面代码里要用。
第二步:批量上传图片文件
不要用控制台网页一个个传,效率太低。推荐用ossutil命令行工具,一条命令搞定整目录上传。安装好ossutil后,配置好AccessKey,执行:ossutil cp -r /www/wwwroot/site/uploads/ oss://你的bucket名/uploads/ --update。--update参数会跳过已存在的同名文件,中断后重跑也不怕重复。20G图片大概十来分钟传完,内网速度更快。
传完之后,随机抽查几个文件,用浏览器直接访问 https://bucket名.oss-cn-区域.aliyuncs.com/uploads/xxx.jpg,能正常显示就说明上传成功。
第二步:绑定自定义域名并配置HTTPS
默认的OSS域名又长又丑,还带云厂商信息。在Bucket基础设置里找到“域名管理”,添加一个二级域名比如 img.yoursite.com,CNAME解析指向OSS外网域名。SSL证书可以在云厂商处免费申请,配好HTTPS避免浏览器“不安全”提示。
第四步:改造网站代码替换图片路径
这是最关键的一步。核心思路是把图片URL中的本地路径替换为OSS域名。如果图片地址是写死在模板里的,用编辑器全局搜索替换,把 /uploads/ 替换为 https://img.yoursite.com/uploads/。
如果图片地址存在数据库里(比如WordPress、各类CMS),执行一条SQL批量更新:UPDATE wp_posts SET post_content = REPLACE(post_content, '/uploads/', 'https://img.yoursite.com/uploads/')。执行前务必备份数据库,这属于数据迁移备份的重要一步。
替换完成后清一下缓存,前台刷新看看图片是否正常加载。建议用浏览器的Network面板过滤Img请求,确认图片来源域名已经切换成功。
迁移后的收尾检查
跑一周观察下来,关注三个指标:OSS请求费用是否在预期范围内、图片加载耗时是否明显下降、服务器带宽占用是否降下来了。如果一切正常,本地uploads目录可以打包备份后删除,给服务器腾出空间。但删除前一定做好数据迁移备份,保留至少一份完整副本。