最近众多阿里云OSS、腾讯云COS等第三方对象存储分离WordPress附件/图片的插件功能,尤其是最近新浪图床设置防盗链之后很多网站的图片都无法打开,不少网友开始使用第三方存储自建图床。无论我们是用插件实现,还是自己其他方式实现分离管理附件的,需要注意处理文件的路径替换问题。
如果我们是网站高手,肯定是知道这些原理的,我们在迁移或者更换网址域名,或者是附件路径迁移之后,需要将原来目录下的附件批量迁移到新的存储中,以及需要通过修改数据库中原来URL路径为新的地址,那到底是如何实现的呢?
第一、备份网站和数据库
如果你是高手,且有足够的把握解决迁移静态文件或者是更换域名可能导致的目录混乱问题,那就不需要备份,可能这些问题对你来说是小儿科。如果你没有把握,或者可能担心自己操作失误导致混乱,那就需要对数据库或者网站文件进行备份,一般备份数据库就行。
如果我们服务器有快照备份的,直接用快照备份,这样显得更加容易和安全一些。
第二、迁移原来的静态文件到新目录
这里我们可以将本地(wp-content/uploads)目录中的文件上传到对应的COS、OSS目录中。因为后面我所有的静态文件都需要迁移到远程云存储中,我们提前将本地的文件传上去。老蒋发现有很多网友在更换第三方存储管理静态文件之后,看到媒体库中以前媒体文件不见了,或者看到是空白的,其实是我们没有将原来的文件传到对象存储中。
第三、启用插件配置检查完整度
且检测上传文件没有任何问题,当然有些时候也有和主题或者插件冲突的,这个我们自己想办法排查或者更换插件或者修改兼容性。
第四、修改数据库替换新地址
如果我们是新网站才开始使用,那就不要替换数据库中原有的静态文件地址,如果是老网站迁移的时候是需要用到批量替换的,这里我们也可以用一些插件,但是考虑到插件可能批量搞错,初杺还是喜欢直接数据库修改。登录phpmyadmin,然后在SQL选项中运行:
UPDATE wp_posts SET post_content = REPLACE( post_content, '原内容', '新内容' ) ;
这里具体还需要看我们网站的数据库表前缀,这里默认我用的是"wp_",如果是其他的就得替换。然后将我们数据库内容替换,我这里举个例子:
UPDATE wp_posts SET post_content = REPLACE( post_content, 'blog.cxyqx.cn/wp-content/uploads', 'cos.blog.cxyqx.cn/wp-content/uploads' ) ;
这里我考虑到严格匹配度,我直接将后面的尾巴一起带上,这样严格替换。这里就体现到备份数据库的重要性,很多人容易替换错我们还可以恢复数据库。
第五、检查兼容问题
替换完毕之后,我们重新刷新缓存,然后检查兼容性是否有问题,这个时候我们可以将本地的静态文件删除,然后打开网页看看以前文章是否可以显示内容中的图片/附件。对于我们使用的对象存储中设置防盗链,以及安全设置我们自行解决,我就不在这里说了,以后有时间再找时间单独整理。
总结,如果我们网站中的图片不多,或者是服务器配置还可以,就没有必要用到第三方对象存储,毕竟目前第三方对象存储还是付费的居多。如果我们希望实现分离存储的,可以按照上面的步骤解决,思路必须正确,想清楚再慢慢修正。
评论(0)