阿里云附件(WordPress插件)更新到 v2.0 beta版——发布重要更新!

2015-01-09

2016.04.06更新:升级到v2.1 beta版,链接地址:http://mawenjian.net/p/977.html

时隔两年,阿里云附件(Aliyun OSS Support)再次更新,针对v1.0版存在的问题进行了11项改进。欢迎各位体验并提出意见和建议!

两年前,为了满足自己的特定需求,将上传到WordPress的附件同步到阿里云OSS中,我写了阿里云附件(Aliyun OSS Support)插件的v1.0版本。做v1.0版的时候,我考虑的是只要能满足自己的基本使用需求即可,发出来纯粹是为了顺便方便大家,所以并没有对用户需求进行调研,代码质量也很低,还存在很多的BUG。

后来因为我的博客转为使用百度BCS作为云存储的缘故,这个插件便没有更新了,我把精力放在了BCS插件上。后来随着个人需求的增多,我对BCS插件进行了数个版本的更新,所以到最后,我便把这两个插件实现的功能、修复的BUG搞混了。以致当众网友给这个OSS插件提意见的时候,我竟会错以为功能已经实现了,也并未引起足够重视。直到前几天开始着手升级的时候,我才发现这个插件竟然还在如此初级的阶段。

虽然插件功能少、BUG多,但因为是发布时间最早的OSS同步插件,所以还是受到了众网友的谬赞。随着WordPress升级到新版本,众网友陆续反馈这款插件变得不可用,于是我便着手对这款插件进行升级。因为平时我就在考虑应当从哪些方面进行完善,所以实际操作起来,反倒没费什么力气。在经过大约两天的编码和测试后,这个v2.0 beta版的新插件就这么华丽丽地诞生了!

废话说了这么多,下面进入正题,看看v2.0 beta版都进行了哪些更新

  1. 修复了v1.0版本中网友提出的各类BUG(我能想到的);
  2. 更新OSS SDK到最新的 v1.1.6 版本;
  3. 修复只能上传图片不能上传其他类型文件的BUG;
  4. 支持OSS所有存储地域(杭州、北京、深圳、青岛、香港)和内外网支持;
  5. 增加插件启用时的服务器运行环境测试,如果服务器不满足基本要求,则会进行提示;
  6. 增加AK/SK/BUCKET校验功能,如果AK/SK没有操作BUCKET的权限,或者BUCKET为“私有”或“公开读写”状态,则会进行相应提示;
  7. 增加插件卸载复原功能,会在插件卸载的时候将upload_path_url参数还原;
  8. 允许用户选择是否将图片的缩略图不同步到OSS;
  9. 优化代码结构,把大部分代码进行了重写,增加了完整的代码注释,对可能产生的错误和可能抛出的异常进行了相应处理,增强了代码的健壮性;
  10. 代码同步到了Github(https://github.com/mawenjian/aliyun-oss-support),方便各位有兴趣的朋友创建新的分支。
  11. 完善了插件配置页面的文字描述,即使是小白也能按说明把插件配置好。

放张截图:

阿里云附件v2.0 beta版

说明:

1、由于增加了新参数的缘故,所以如果是从v1.0版本升级过来的话,请在安装新版本插件后,到配置页面把新参数补充完整,以免影响使用。

2、最好将原来上传到WordPress的附件同步到OSS的相应目录,否则启用插件后,原来上传图片的缩略图在WordPress后台将会不能显示。

3、建议在上传文件前规范文件的命名规则,避免因不符合OSS的Object命名规范而导致上传失败。个人建议文件命名使用“26个英文字母”、“数字0-9”以及“-”,除此之外的字符都不用。

4、对于体积较大的文件,不建议使用WordPress后台上传,因为需要Web服务器进行周转,效率较低,也容易出错(尤其是海外服务器);建议直接通过OSS管理后台或相关工具上传到OSS中的相应位置。

5、如果有任何意见或建议,请到 http://mawenjian.net/p/977.html 反馈。

6、欢迎其他OSS类同步插件将我新加入的功能放到他们的插件中(直接粘贴代码也无所谓,当然,最好可以提及下idea来自于我)。为广大网友提供更好用的插件才是我们的最终目的,其他都不重要。

插件维护页面:http://mawenjian.net/p/977.html

插件下载地址:http://url.ehan.cn/osssupport


除非特殊说明,本博客文章均为原创,转载请以链接形式标明博文地址。

本文链接地址: 阿里云附件(WordPress插件)更新到 v2.0 beta版——发布重要更新!

分类:WordPress | 标签: |
  1. Warning: curl_setopt() expects parameter 2 to be integer, string given in C:xampphtdocswpwp-contentpluginsaliyun-oss-support-masterlibrequestcorerequestcore.class.php on line
    请问这个是什么问题

  2. 博主 求开一个QQ群啊 ,很担心以后这个插件用着用着就出问题,特别是WP升级后如果出问题不能及时解决就完了,可以提供有偿服务呀

  3. 群主 你能不能整一个QQ群,把我们都加进去 ,完全可以提供有偿服务呀,因为其实后面如果WP升级了可能会遇到一些问题,这样就不能及时解决,我对你的插件非常关注

  4. 大神,可否开发一个VeryCloud的云分发插件啊!?这个VeryCloud的云分发是支持https的!貌似其他的平台没开放https啊!~~

  5. 马老师,我在用这个插件的时候很疑惑。我测试在WP后台上传图片的时候,OSS里的BUCKET是能够正常同步的,不仅有原图,也有缩略图,但是在WP后台的媒体库里面却无法正常显示。在写文章的时候选择媒体库图片时,无法显示,但是可以选择插入,但是插入后在查看文章时图片无法正常显示,图片链接指向的并不是OSS里的Object,而是服务器上的,但是依旧无法正常显示。是否要开启“不在本地保留备份”功能?
    我还使用了CDN加速OSS用来放WP图片的BUCKET,现在我写文章的时候插入图片都是先从WP上传,让插件同步到OSS里,再到OSS里获取CDN加速后的地址,回到文章编写页面用“插入URL”的方式来插入图片,这样可以正常显示。
    但是我在WP媒体库删除图片后,OSS里的图片也被删除了……..这个有什么好的解决办法吗?还是插件本身的工作性质就是“同步”而不是“中转”?

  6. 非常感谢马老师的这个作品,非常好用。有一个问题还想请教一下,最近做了一个新站,也想用您的这个插件,结果在启动的时候出现以下错误,能帮我分析一下吗?您的那个百度云附件插件可以用唯独这个出现这个情况哦?错误是这样的:PHP Fatal error: Cannot redeclare _file_upload() (previously declared in D:wwwrootqldj5wp-contentpluginsBCSSupportbcs-support.php:58) in D:wwwrootqldj5wp-contentpluginsOSS-Supportoss-support.php on line 123

    • 哈哈,是因为你同时安装了这两个插件,删除另外一个即可。其中一个插件是从另一个的基础上改的,函数名没有改,导致出现重名的函数,所以就报错了。

  7. 在上传图片时,如果插件没有选择保留本地备份,在媒体库就无法看到图片,只有附件那种样式,不保留备份时上传到OSS后,没有缩略图!插入后,图片也好小,看不到

    • 感谢反馈!这确实是一个重大BUG,等我有时间的时候解决下。我知道其他版本有的就没这个问题,也可以用他们的。我暂时还腾不出手来解决这个问题。

    • 估计是WordPress测量图片长宽的时候,插件已经把服务器端图片删除的缘故吧。下个版本修正,多谢反馈。原来的版本倒没有这个问题,真是奇了怪了。

  8. 谢谢你的开发!对于 wordpress 来说希望能 增加 下载 功能,能把 下载附件(指 7z、zip、rar之类的) 与一般的wordpress图片附近分开。好像所有的 第三方云存储插件都没有支持 有需要独立的下载功能,我打算 反代 oss ,这样相当于 把oss的图片 与下载文件都反代出来,这样oss 更多的相当于 一块硬盘,流量什么的 消耗很少 全部有 反代承担!(好处是 最高最贵的流量费 有着落了)

    • 好主意,后续版本可以考虑实现。不过,虽然OSS的流量费很贵,但是可以配合CDN使用啊。比如阿里的CDN,价格最高才4毛一个G。如果反代的话,一个是带宽不便宜,另一个是自己的带宽毕竟有限,可伸缩性不如OSS。所以我更倾向于部署CDN,这样OSS消耗的流量就很少了。

      • 下载 流量 一个月要 五六百G 不止。。。。 按流量算太贵了 ,其实反代 下载文件 对于速度要求不高,买一个美国主机,就完全够用了,如果不能跟图片 附件系统分开存储 ,那么对图片就无法加速了(有些下载文件有几百兆,只要有一个人下载,我的小水管瞬间爆表。。。)。我现在想的是图片由阿里云主机反代, 下载文件由美国主机反代(美国主机真的很便宜,流量也给的足!我真好有一款7美元一年 2T vps的空闲着),这样既兼顾了 网站速度,又比较便宜。不同资源各自静态化分开,我在wordpress.org找了一天的也没有这方面的插件,所有的下载插件都是只能上传附件到本地,没有远程ftp的功能。。。。。。苦逼了。。。现在用的一个国人开发的 wordpress下载插件,因为上传把所有文件都放在了同一个文件夹下,就快过万了,不得不考虑更换更好的方案了。。国外的那些下载插件又大多数不支持中文(连重命名的机会都不给),所以找的好辛苦啊。。。要逼的我一个一个ftp传了·· ·······

  9. 谢谢你,我看了你的回复 我把源码发你邮箱里,官方制作插件要等很久 而且收费特别贵,源码都要上百万,所有很多电商爱好者,自己反编译源码, 相互开发插件,集成在源码里。 我不懂技术,所以只能请教你这样的高手。 看到你这个插件兼职太棒了,完美的功能,多么希望能集成进去,这样大概十几万电商小站长,可以为服务器节省很多没必要的开销。 让更多人去创业 去拼搏。 最后再次感谢您。 感恩

  10. 一、说一个bug,当设置为根目录,也就是本地目录为.时,会造成我的主页显示不正常,但是禁用插件一切正常,不知道什么原因,设置为其他路径正常。
    二、建议OSS上传路径和本地最好采用不同的路径。
    三、建义对上传图片进行压缩处理后再上传至OSS
    四、建议增加本地与OSS同步功能,方便切换
    就说这么多QQ 942202044

    • 非常感谢!
      1.设置为根目录时,主页怎么会显示不正常呢?请详细描述问题。
      2.请问采用不同路径是出于什么考虑呢,有什么应用场景?我设计成相同目录,主要是为了切换方便。比如我现在用的OSS(绑定域名),但是我突然不想用它了,我只要把域名指向的IP换成原来的就行。
      3.好主意,可以考虑集成进来。不过也有现成的插件吧,配合起来工作即可。
      4.这个可以加。不过现在OSS有很多第三方的上传工具,用这些工具做这个工作绰绰有余。
      有不同见解欢迎继续探讨。

      • 给你个参考插件,这个是在原来1.0的基础上改的
        http://www.hivps.cn/80.html
        一、因为像我是使用VPS等独立服务器的,所以在上传路径是在服务器上的绝对路径如/home/wwwroot/img,那么你的插件在做上传处理的时候是会把第一个/去掉的,问题就来了。
        二、采用不同的路径,比如oss开了一个bucket,这个bucket本意是存放一个网站的静态资源的,那么问题来了,为了方便管理,这个bucket下面就会有img或者download等多个文件夹,以此来存放不同的媒体文件,习惯问题。
        三、人嘛总想着能一个插件解决,就不想再装其他的了
        四、可能您理解错了,我所说的本地是指wp原来的上传路径。
        谢谢回复

        • 1.当时还特意注意了这个问题来着,因为我自己就是把图片放在根目录的。我在测试的过程中没有遇到这个问题,大概是服务器环境的差异吧,后续还需要继续完善。顺便问下,根目录的时候,"本地文件夹"你是留空,还是填写的"."?
          2.大概明白你的意思了,就是图片上传到图片文件夹、视频上传到视频文件夹吧?确实是习惯问题,我一般都是所有文件按年月分文件夹存放的。这点确实众口难调,在没有很多用户强烈要求之前,我只能暂时以我的习惯为准了,哈哈。
          3.一个插件解决问题固然最好,但每个插件都能专注、并且做到极致似乎更好吧。与其做一个上传和图片优化都做得一般般的插件,不如采用两个上传和图片优化都做到极致的插件。毕竟人精力有限嘛,而且我也是能偷懒就尽量偷懒,少做一点是一点。
          4.没理解错,只是我没说清楚。我先前考虑过这个问题——要是文件多的话,让用户开着网页等着一个个上传完,体验并不好,而且中间出了故障也不好处理,这时候能有段SHELL脚本专门做批量上传自然是最好的了。文件少的话,就不值得做,直接在家用PC机上传不就完事儿了。最后一个原因,懒,有工具能干的活,我就不实现了,毕竟这个只是业余爱好加上个人需求罢了。

  11. 既然可能因命名不符合OSS的Object命名规范而导致上传失败,能不能直接加入自动更名的功能呢?
    md5?
    或者当前域名+年月日时分秒

    • 这个想法我也考虑过,各有利弊。
      因为WordPress本身的机制是不对文件进行重新命名,所以最后我决定还是继续沿用下来。用MD5重命名,好处是不会出现命名不符合命名规则的情况,但是文件名的可读性就变差了;保留原名的话,只要稍微注意下就行了,或许对SEO也有些好处吧。我左右权衡,最后还是不用了。不过确实可以考虑加一个选项,由用户选择是否开启随机命名。

      • 在图片附件上,我用了Hacklog Remote Image Autosave(远程附件本地化),Hacklog Remote Attachment Upyun(本地附件远程到又拍),File Renaming on upload(上传附件改名为ji8_2015-01-09_14-43-25.jpg这样的格式)三个插件,雷死了,感觉应该可以整合到一起的,只是我没这个能力。

        • 是的,可以整合到一起,而且难度不大。不过我能猜到作者的意思,就是保证每个插件的原子性,当用户需要它的时候才安装,不用就不必装了。
          三个插件与一个比起来,效率基本不会低,因为业务逻辑都是非常简单的,顶多就是多从磁盘加载两个PHP页面。和整合到一个比起来,影响微乎其微。