NIUBI
wordpress教程

WordPress 插件自动上传媒体文件到远程 FTP 存储

1年前/ 74/ / WP爱好者/ 已收录/
导语: 如果你有一个支持 cdn 的 FTP 空间,这个空间又支持绑定域名,那么你可以使用这款自动上传媒体文件到远程 FTP 存储插件。当你通过 WordPress 的媒体功能上传文件时,它会自动检查本地所有的媒体文件,并且将远程 FTP 空间中没有的文件上传到 FTP 空间中存储,并且会提供 FTP 空间的调用地址。这样我们就能将所有媒体文件独立出去,并且利用 ftp 空间的 cdn 进行加速,也就是传说中的动静分离。这样做的好处多多,坏处也有。

如果你有一个支持 cdn 的 FTP 空间,这个空间又支持绑定域名,那么你可以使用这款自动上传媒体文件到远程 FTP 存储插件。当你通过 WordPress 的媒体功能上传文件时,它会自动检查本地所有的媒体文件,并且将远程 FTP 空间中没有的文件上传到 FTP 空间中存储,并且会提供 FTP 空间的调用地址。这样我们就能将所有媒体文件独立出去,并且利用 ftp 空间的 cdn 进行加速,也就是传说中的动静分离。这样做的好处多多,坏处也有。

我们都知道,现代浏览器为了保护网站,都限制了相同域名并发量,一般是同时发起 6 个请求,超过就得排队。而我们的网页一般都有几十个资源组成,如果全部都在一个域名,难免会排队。如果使用二级域名绑定到 ftp 空间中,那么媒体图片资源将区别于网页域名,不受 6 个并发限制,并且我们知道媒体文件一般都很大,个人站长几乎都是小水管,支持 cdn 的 ftp 空间还能对文件进行加速,效果棒棒哒!

WordPress 插件自动上传媒体文件到远程 FTP 存储

WordPress 插件自动上传媒体文件到远程 FTP 存储

效果如上图所示,下面看核心源码,完整文件在文末下载。

function ftp_putAll($conn_id, $src_dir, $dst_dir, $created) {             $d = dir($src_dir);//获取本地 uploads 目录下的所有文件夹和文件      while($file = $d->read()) { // 遍历本地目录及文件          if ($file != "." && $file != "..") { // 不是当前目录或上层目录     clearstatcache();//清除文件夹状态缓存              if (is_dir($src_dir."/".$file)) { // 如果是文件夹                  if (!@ftp_chdir($conn_id, $dst_dir."/".$file)) { //改变 ftp 当前目录,改变失败就创建目录                      ftp_mkdir($conn_id, $dst_dir."/".$file); // 创建文件夹                  }                  $created  = ftp_putAll($conn_id, $src_dir."/".$file, $dst_dir."/".$file, $created); // 递归              } else { //如果是文件    if(!file_exists($file)){ //如果该文件不存在     $upload = ftp_put($conn_id, $dst_dir."/".$file, $src_dir."/".$file, FTP_BINARY); // 上传文件     if($upload) //上传成功      $created[] = $src_dir."/".$file; //新文件地址     }           clearstatcache();//清除文件状态查询缓存                }          }      }      $d->close();      return $created;  }

几乎所有的代码我都加了注释,应该看得懂了。php 连接 ftp 的动作我这里没写,这里的主要逻辑是遍历本地目录文件与远程文件目录对比,如果远程没有,就上传到 ftp 存储空间,最后返回本次上传的所有文件链接。

注意:使用 ftp 上传文件需要打开 php 的 ftp 扩展模块!另外,这种写法不适合有很多图片的站,因为每次上传都会检查所有文件,会出现 504 超时,发出来仅仅是为了学习参考。建议使用成熟的插件Hacklog Remote Attachment,直接在 WordPress 后台插件页面搜索安装即可。

文件下载

   WordPress 自动上传媒体文件到远程 FTP 存储插件  >> 2KB 

点点赞赏,手留余香

还没有人赞赏,快来当第一个赞赏的人吧!
admin给Admin打赏
×
予人玫瑰,手有余香
  • 2
  • 5
  • 10
  • 20
  • 50
2
支付
收藏 0 海报

版权归属:本文为原创文章,版权归 所有

本文链接:( 欢迎分享本文,转载请保留出处 )

免责声明:如发现本站有涉嫌抄袭侵权/违法违规的内容,请邮件/留言反馈,一经查实本站将立刻删除!

<< 上一篇

2019-04-06

下一篇 >>

2019-04-09

全部评论( 0 条 )
扫一扫二维码分享