WordPress 附件FTP同步插件——Hacklog Remote Attachment

Hacklog Remote Attachment 是荒野无灯开发的一款wordpress附件ftp同步插件,它能将WordPress的附件(uploads文件夹里的文件)同步到另一个ftp空间中。软件的主要特点:

  • 将你的WordPress附件备份到远程ftp中,同时本地文件不会删除(限Sync版本);
  • 支持图片、mp3、rar等任何格式的附件(需要的你ftp支持这些格式);
  • 本地附件(即uploads文件夹)和远程ftp的文件是同步的,即对本地文件的添加/删除操作也会同步到远程ftp中,这样就保持了远程ftp的目录和文件结构和本地uploads文件夹的一模一样。
  • 设置完成后完全可以无视,文件的同步操作会在后台自动完成(插件会hook WordPress控制台的上传和删除操作,同时也支持Windows Live Writer等的xmlrpc调用)。
  • 单文件源代码,体积小巧、易于修改,不用担心资源占用。

关于Hacklog Remote Attachment的更多介绍可以参考作者的博客: 点击这里打开HackLog,这里只介绍几个刚开始使用的时候可能会迷惑的地方。

1、Hacklog Remote Attachment 有几个版本?什么区别?

Hacklog Remote Attachment目前有三个版本:

2、Hacklog Remote Attachment Sync的使用

Hacklog Remote Attachment Sync 同步版其实和Hacklog Remote Attachment远程附件版代码是一样的,只是注释掉了几个hook操作,因此在将附件上传到远程ftp后不会删除本地附件。作者的本意是想把它作为纯粹的ftp备份工具。但是我们可以通过一些设置来实现远程附件的功能。

2.1 安装设置

下载Hacklog Remote Attachment Sync 安装并激活: 本地下载 作者博客下载 。请不要使用WordPress的自动下载安装,那个是远程附件版本。

进入设置界面:

settings

设置完成就可以点击保存了,软件会尝试连接ftp,并且提示你连接成功或失败。如果连接失败的话请检查一下你的输入是否有误,空间是否支持ftp。

这样设置后,以后你上传的所有附件就会自动同步到远程的ftp中了,那么以前的附件怎么办呢?很简单,把你uploads目录下所有文件下载下来,然后上传到同步的ftp空间里就可以了,注意WordPress 的uploads目录必须和你ftp目录结构一样。

如果你只是想把远程ftp当做WordPress附件的一个备份,而博客使用WordPress本地附件,那么到这一步你已经成功了,请无视下文;如果你想反过来,把WordPress本地附件作为备份,而博客调用ftp远程附件,那么请继续往下看。

2.2. 调用远程附件

细心的朋友可能发现了,上图中我填写的地址是www14.sitemix.jp,是滴,小站所有的附件都保存在SiteMix免费空间里,并且绑定了小站的二级域名upload.shuyz.com。这样做的好处是:即使某一天SiteMix空间突然挂掉了,由于附件在WordPress本地的uploads文件夹里有备份,我只需要把附件的域名upload.shuyz.com绑定到uploads文件夹就可以了。不会影响博客图片等附件。

下面来讲一下具体操作:

先绑定域名到你的远程ftp空间,比如你申请了SiteMix的免费空间,那么你可以绑定upload.mydomain.com(把mydomain换成你的域名)到这个空间即可。以后通过这个域名就可以直接访问到远程ftp空间的目录了。关于绑定域名的教程很多,为了避免制作网络垃圾,这个步骤请自行搞定。

FTP空间绑定域名后,我们还要给WordPress的附件绑定这个域名,这样WordPress就会把附件指向ftp所在的域名了。这一步有两种方法实现:

方法1: 移花接木法,偷偷将所有附件的地址换成远程ftp空间的URL
  • STEP 1:修改源代码。ftp到你的WordPress空间,找到Hacklog Remote Attachment Sync目录,下载hacklogra.class.php文件到本地;

Edit Code

把第50行add_filter…前面的”//”去掉后保存,上传覆盖原来的文件。

  • STEP 2:进入Hacklog Remote Attachment Sync设置,把Remote Base URL换成远程ftp的域名,并在Http remote path填写相对路径。我的从根地址可以访问,因此Http remote path填写个”.”就行了。

Remote Base URL

如果你的远程ftp域名绑定没错的话,设置完成后访问你的博客就能调用远程附件了,旧的和新的附件URL度被替换成了远程ftp的地址。

方法2 :一劳永逸法,本方法需要修改数据库,不推荐使用
  • STEP 1:在WordPress里给附件设置URL,在Settings –> Media 填写附件的URL即可。

Http File URL

以后你上传的附件地址就变成upload.mdomain.com/2012/03/1.jpg这样的格式了,而以前的附件地址却全部不能访问了。

  • STEP 2: 更改以前的附件地址

我们需要修改数据库的wp_posts表,将post_content列和guid列的老附件地址换成新的附件地址。

操作前请务必备份你的数据库!数据库的所有操作不可撤销!

其实说起来也挺简单,update一下表就行了,SQL格式:

UPDATE `表名` SET guid = REPLACE( 列, ‘旧值’, ‘新值’ );

比如我运行的SQL命令:

UPDATE `wp_posts` SET guid = REPLACE( guid, ‘shuyz.com/wp-content/uploads/’, ‘uploads.shuyz.com/’ );   
UPDATE `wptb_posts` SET post_content = REPLACE( post_content, ‘shuyz.com/wp-content/uploads/’, ‘uploads.shuyz.com/’ );  

数据库更新之后就可以使用ftp远程附件了,效果和方法1一样。

更多介绍及FAQ请移步作者的博客: 点击这里打开HackLog

关键字:WordPress, 同步, sitemix

本文链接:树叶的BLOG >> WordPress 附件FTP同步插件——Hacklog Remote Attachment

本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 Unported许可协议进行许可。

上一篇 : 解决htaccess加密的WordPress子目录404错误 下一篇 : Google Drive 使用小记