本地存储切云存储:切换驱动后存量附件会失效吗
本地存储切换云存储后,存量附件通常不会失效,但需先确认附件记录存的是相对路径还是绝对地址,切换前备份数据库与上传目录,配置云端后测试新老附件,老附件无法访问时迁移存量文件并保持原目录或做重定向,验证老帖图片、附件下载、新上传及头像表情正常,异常时改回本地驱动回滚。
切换附件存储驱动后,存量附件会不会集体 404——这篇讲清判断方法和完整切换流程,照着做能避免老帖里的图片变成一片破图。
先给结论:**大多数情况下不会失效,但前提是你没删源文件、路径对得上,且旧文件的访问地址仍然可达。** 下面按步骤来。
第一步:先搞清楚"失效"指什么
所谓失效,通常是两种情况:
- 文件丢了——你切换驱动时顺手把服务器上的
uploads目录清空了,云端又没传上去,那是真没了。 - 链接指错了——文件还在,但前台拼出来的访问地址变了,浏览器请求不到。
判断你的站点属于哪种,去后台「内容管理→附件管理」,看几条历史附件记录里存的是什么:是相对路径/文件名,还是带完整域名的绝对地址。
- 存相对路径:前台按当前驱动配置动态拼接地址,只要文件迁移到位,切换后照常访问。
- 存绝对地址:切了驱动后老地址可能不再指向新位置,需要用规则或重定向兼容。
注意:这一步决定后面要不要做迁移,别跳过直接切。
第二步:切换前先备份两样东西
- 数据库:至少导出
uploads相关的附件记录表(连同帖子内容表)。 - 文件目录:把服务器上的上传目录完整下载或打包一份。
注意:不要用"移动"代替"复制",切换期间源目录要留着,否则出问题没法回滚。
第三步:在后台配置云存储驱动
进入后台「系统设置→云存储」,填入你所用服务的接入信息(AccessKey、Bucket、区域、访问域名等),保存后先不要急着全站生效。
保存即生效是这套系统的特点,所以:
- 用一个新的小号或者游客状态,发一条带图片的测试帖,确认能上传成功、能正常显示。
- 再打开一条切换前发布的老帖,看里面的图片是否能显示。
老帖能显示 → 说明历史文件仍走旧路径可访问,属于兼容状态;老帖不显示 → 进入第四步。
注意:如果测出上传失败,先查 PHP 的
upload_max_filesize和post_max_size,宝塔默认 2M,手机照片经常超,建议调到 30M 以上。这和驱动无关,但很多人会误判成云存储配置错了。
第四步:把存量文件迁过去
这一步是核心。三种做法,按你的文件量选:
- 文件少(几百个):用云存储服务商的控制台或客户端手动上传,保持原来的目录层级不变,这样老路径能直接对上。
- 文件多:用官方客户端或
ossutil/coscmd这类命令行工具批量同步,注意加--update之类的增量参数,别反复全量传。 - 不想折腾:保留源文件不迁,让老帖继续读本地、新帖走云端,形成混合状态。这能用,但你要接受"服务器磁盘不能删"这个前提。
迁移完成后,回到老帖刷新验证。
注意:如果站点用了 CDN,切换后记得刷新一下缓存或改回源地址,否则你看到的是 CDN 上的旧副本,会误判成迁移失败。
第五步:验证与回滚预案
按这个顺序过一遍:
- 老帖图片 → 显示正常?
- 老帖里的可下载附件(含付费附件、网盘链接模式)→ 能正常下载?
- 新发帖上传 → 正常?
- 头像、表情包这类也算上传资源,顺手看一眼。
任何一项不对,把云存储配置改回本地驱动即可。因为第二步留着源目录和数据库备份,回滚成本很低。
注意:确认一切正常之前,别执行"缓存清理"之外的任何清理动作,也别去动回收站(前台删除的帖子和附件默认保留 30 天可恢复)。
小结
- 切换存储驱动,文件不会凭空失效,出问题一般是路径拼接或文件没迁。
- 先看附件记录存的是相对路径还是绝对地址,这决定要不要做兼容。
- 切换前备份数据库 + 上传目录,源文件不要删。
- 切完先测新上传,再测老帖,最后确认附件下载。
- 站点地址配置要带
https://和主域名,www 与裸域混用会导致会话和资源请求异常。 - 出问题就改回本地驱动回滚,成本很低。
转载请注明出处,版权归原作者所有。
星耀SVIP
管理员
黑卡会员






