北极寒流 » 网络资源 » WordPress远程附件插件:Hacklog Remote Attachment - 2014.07.16

WordPress远程附件插件:Hacklog Remote Attachment

Hacklog Remote Attachment是一款实用的WordPress远程附件插件,利用Hacklog Remote Attachment插件可以把你WordPress网站的附件远程上传到其他FTP空间,有效缓解本地服务器的压力(空间容量,流量,请求等)

插件取名:Hacklog远程附件

WordPress 远程附件上传插件:Remote attachment support for WordPress.
安装完成后,到后台配置一下ftp服务器相关信息即可。
远程服务器只需要有FTP和www服务器(web服务器主要用于图片的显示)即OK.
远程的目录结构和本地的一样,支持多级目录。
上传附件(图片、音乐、其它文件),直接点击wp的上传按钮即可,过程与原来无异。
在后台可删除远程附件。
后台可统计远程附件占用的空间大小。
支持单用户博客、多用户博客。

Hacklog Remote Attachment插件用法

首先,不用我说啦,备份网站的数据(文件+数据库).
然后,把wp-content/uploads目录及入下面的所有文件全部传到远程FTP服务器上去。

然后,到wp后台”Hacklog远程附件” 配置插件,要填写的内容包括:
ftp用户名、密码、端口、远程base URL、远程路径(即子目录)
这里解释下远程base URL,这个URL即访问你的FTP根目录的URL (http协议的),如 http://static.ihacklog.com/
然后是路径了,也就是你要远程FTP服务器的哪个目录下面放置wordpress的附件,这个目录其实是相当于wordpress的wp-content目录下面的uploads目录了,只是这里的目录名你可以随便取,我这里用的是wp-files

注意

1.远程ftp的上传目录需要有“写”权限
2.本地服务器的wp-content/uploads目录请勿删除,此目录在生成图片的缩略图时要用到,生成的残留文件不必手动删除,插件自会在一小时后删除之。
3.wp后台的“媒体”选项中的上传目录选项请保持和你原来一样,不要在迁移后随便修改这些。总之,这个选项按你原来博客是哪样,现在还是哪样,这样就行了。
4.FTP空间最好与你的本地服务器在同一地域,这样上传起来速度更快。

如果你决定把所有附件都迁移到远程FTP服务器上面,那么还要做以下步骤:

1、把本地服务器(即你博客当前服务器)上的附件上传到远程服务器上面的对应目录(具体是哪个目录,要根据你在插件后台设置来)。

2、最后,更新数据库。由于现在博客日志中的图片和附件链接都是指向原来的URL的,因此,得更新一下。这个可以用Hacklog Remote Attachment后台的Tools搞定,也可以自己进phpmyadmin,然后执行:

UPDATE `wp_posts` set post_content=replace(post_content,'ihacklog.com/wordpress/wp-content/uploads/','static.ihacklog.com/wp-files/');
UPDATE `wp_posts` set post_content=replace(post_content,'www.ihacklog.com/wordpress/wp-content/uploads/','static.ihacklog.com/wp-files/');

注意,这里wp_posts是日志表名,如果你更新了前缀,请用自己的表名。www.ihacklog.com/wordpress/wp-content/uploads/ 是原来的URL中的一部分,static.ihacklog.com/wp-files/ 是新的URL,这些理解起来应该都很容易,不过在做这个操作前最好确保你已经做了第一步:备份。

OK,现在完工了。你可以在后台像平常一样上传附件、图片什么的,删除也一样。唯一不同的是你的附件是保存在了远程服务器上了。
以前你怎么上传图片,现在还是怎么上传:

小技巧

对于apache服务器,为防止别人引用你的图片,可在远程服务器的附件目录下面放一.htaccess文件,内容示例如下,此文件可防止外站引用消耗流量,并且加上了文件缓存,节省流量:

Options -Indexes
# BEGIN
<IfModule mod_rewrite.c>
# START Fang dao lian
#allow empty ref
RewriteCond %{HTTP_REFERER} !^$ [NC]
#if not my website
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?ihacklog\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?google\.com/reader/ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?zhuaxia\.com/ [NC]
RewriteRule .*\.(jpg|jpeg|gif|png|bmp|mp3|wma|zip|rar|bz|gz|tar|doc|pdf)$ http://ihacklog.com/ihacklog.com.png [R,NC]
# END Fang dao lian
</IfModule>
<Files ~ "^.(htaccess|htpasswd)$">
deny from all
</Files>
# Image and Flash content Caching for One Month 
<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>
#ETags
FileETag MTime Size
<ifmodule mod_expires.c>
  <filesmatch "\.(jpg|gif|png|css|js)$">
ExpiresActive on
ExpiresDefault "access plus 1 year"
   </filesmatch>
</ifmodule>

已知BUG

如果你只是想在使用此插件之后的文件上传到远程FTP服务器上,而原来的文件在本地服务器继续保留,那么后台查看先前的附件时,其URL是不正确的。但这并不影响先前的日志中附件和图片的显示等。

其他问题

Q:如果把本地服务器上的附件文件迁移到远程FTP服务器,过一段时间后,我又想把它迁回本地服务器,这样可以吗?

A:可以。直接把相应目录的文件上传到本地服务器即可(注意目录要对应)。然后更新一下数据库(以我的博客为例,其中要替换的内容要根据你自己的博客配置来)。最后禁用本插件即可。

UPDATE `wp_posts` SET post_content=REPLACE(post_content,'static.ihacklog.com/wp-files/','ihacklog.com/wp-content/uploads/');
UPDATE `wp_posts` SET post_content=REPLACE(post_content,'static.ihacklog.com/wp-files/','www.ihacklog.com/wp-content/uploads/');

Q:如果我只想把安装完此插件以后的附件上传到远程服务器,这样可不可以?

A:可以。注意,在这种情况下,后台查看先前(即安装此插件之前)的附件时,其URL是不正确的。但这并不影响先前的日志中附件和图片在前台页面的显示等。

插件下载

资料来源:http://ihacklog.com/post/hacklog-remote-attachment.html

发表评论 【登录·注册】

所有留言都会被审核,请勿发布垃圾评论!

(必填)*