阿里云附件(Aliyun Support)——基于阿里云存储OSS的Wordpress远程附件支持插件【原创】

2013-02-22

2016年4月6日更新:时隔一年,插件升级到V2.1 beta版。V2.1 beta版修复了V2.0 beta版中存在的数个BUG,欢迎体验。

2015年1月5日更新:插件已经升级到V2.0 beta版,欢迎各位下载试用并提出宝贵意见。V2.0 beta版完美支持WordPress 4.1版本,并在功能和细节方面做了许多更新。

废话不多说了,该介绍的上篇文章《百度云附件》都说到了。这个插件的作用,就是把WordPress附件上传到阿里云OSS。

插件特色:

1.上传图片的同时会将略缩图一并上传;

2.删除文件时,会与WordPress后台同步删除;

3.可以选择是否在本地服务器保留文件备份;

4.借助于OSS防盗链功能,可以实现图片防盗链;

5.可以自定义域名——既可以选用oss.aliyuncs.com/bucket/filename形式,也可以选用bucket.oss.aliyun.com/filename形式;

6.插件启用时会进行服务器运行环境测试,如果服务器不满足基本运行要求,则会进行提示;

7.增加AK/SK/BUCKET校验功能,如果AK/SK没有操作BUCKET的权限,或者BUCKET访问权限设置不当,也会进行提示。

2.1 beta版升级内容:

  1. 拆分为两个分支,一个采用阿里云OSS的图片处理机制生成缩略图,另一个继续沿用原来的处理机制;
  2. 新增对上海、美国、新加坡三个OSS存储节点的支持;
  3. Secret Key由明文显示改为密码形式;
  4. 取消“不上传缩略图”功能;
  5. 取消“不在本地保留备份功能”;
  6. 修正上传插件/主题时同步到OSS的BUG;
  7. 增加对离线协作软件(基于XML-RPC协议)的支持。

说明:

  1. 如果采用阿里云OSS的图片处理机制生成缩略图的话,需要在样式管理中添加四个分别名称为“thumbnail”、“post-thumbnail”、“medium”、“large”的样式。
  2. 采用阿里云OSS的图片处理机制的优点是可以节省存储空间,如果图片比较多的话,还是能省不少钱的;但随之而来的,是降低了云存储迁移的灵活性(因为缩略图URL的缘故)。至于哪种方案更合适,自己选择吧。
  3. “不在本地保留备份”功能不稳定,删除之。所以在选择“不在本地保留备份”时出现的插入1*1像素图片的BUG也随之消失。需要节约本地存储空间的用户暂时可以选择手动删除。
  4. 取消“不上传缩略图”功能,分支一无需上传缩略图,分支二不上传缩略图会导致“多媒体”中的缩略图无法显示。
  5. 暂未支持中文文件重命名功能,但不排除后续版本支持的可能性,各位可以尝试与其他插件配合使用(未测试)。
  6. 未支持与Hacklog Remote Image Autosave插件的兼容。在测试过程中,远程保存的图片的缩略图可以上传,但原图未能上传成功,删除时OSS中的缩略图亦不会随之删除。
  7. 未添加对WordPress MU版本的支持。MU版本对URL路径的处理比较麻烦,今天改烦了,这个功能先往后放一放。

下载地址:

  1. 基于OSS图片处理机制的缩略图生成版本:https://github.com/mawenjian/aliyun-oss-support/tree/master
  2. 沿用先前的缩略图上传机制的版本:https://github.com/mawenjian/aliyun-oss-support/tree/classical
  3. 具有相似功能的插件:https://github.com/IvanChou/aliyun-oss-support

2.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. 完善了插件配置页面的文字描述,即使是小白也能按说明把插件配置好。

 

阿里云附件(Aliyun oss support)

安装步骤:

那这个插件如何安装呢?非常简单,只需四步:

第一、从这里下载“阿里云附件”插件,解压缩并上传到WordPress插件目录;(WordPress插件库还没有更新到2.0 beta版,等确认插件稳定后再更新)

第二、在插件管理面板启用“阿里云附件”;

第三、设置 >OSS Setting,按照说明配置Access Key、Secret Key、BUCKET等信息。

阿里云附件v2.0 beta版

第三、设置 >OSS Setting,配置使用的Bucket、AK和SK。(基础知识不做普及了,地址注意Bucket属性要设置成“公开读”;OSS申请地址:http://www.aliyun.com/product/oss/

阿里云附件后台配置(Aliyun oss support)

第四、设置>多媒体,更改“默认上传路径”为’.'(表示存储在根目录);更改“文件的完整 URL 地址”为’http://{bucket}.oss.aliyuncs .com’或者’http://oss.aliyuncs.com/{bucket}’。当然,不一定非得存储在根目录,也可以存储在子目录,但一定要记得“默认上传路径”和“文件的完整 URL 地址”中的子目录一定要保持一致。

阿里云附件URL配置(Aliyun oss support)

注意:WordPress 3.5以后的版本没有此选项,需要到“/wp-admin/options.php”设置“upload_path”和“upload_url_path”参数,这两个对应的就是“默认上传路径”和“文件的完整URL地址”。

理论上,到这里就可以正常使用了。但你会发现,打开”媒体库“,好多图片不能正常显示了。这可怎么办?非常简单,把原来的文件都上传到OSS相应位置就OK了。(推荐使用ossBox或者Aliyun OSS Server,从而可以整文件夹上传)

如果你想把原来文章的图片也替换成阿里云OSS存储,不妨执行下面的SQL语句:

UPDATE `wp_posts` SET post_content=REPLACE(post_content,’到原来附件目录的绝对URL’,'到远程附件目录的绝对URL’);

例如:

UPDATE `wp_posts` SET post_content=REPLACE(post_content,’img.mawenjian.net/uploads/’,'mawenjian.oss.aliyuncs.com/uploads/’);

说明:

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

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

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

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

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

下载地址:http://url.ehan.cn/osssupport (SAE海外线路不太稳定,如果报500错误,多刷新几次就行了)

如果各位朋网友发现了BUG,或者有什么好的建议,请在本页留言。


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

本文链接地址: 阿里云附件(Aliyun Support)——基于阿里云存储OSS的Wordpress远程附件支持插件【原创】

分类:WordPress | 标签: |

293 条评论

  1. 小罗 -说道:

    上传成功后,oss里面没有 ,AK 和SK 没有错,怎么回事啊? 2.0

  2. 原野茫茫说道:

    貌似后台媒体多媒体库无缩略图啊。

  3. 黄晓海说道:

    亲,这个可以移到和彩云网盘不?因为有60TB空间终身免费的。

    • 马文建说道:

      亲,免费的往往是最贵的,一旦人家不免费了,你一点办法都没有,只有收费的才是最可靠的。所以我不会移植免费的服务的,还请见谅。

  4. goooob说道:

    最新4.1可以用,只是老的文章有些不能重新生产缩略图,有点小瑕疵,总体很棒,谢谢作者
    演示地址 goooob.com

    • 马文建说道:

      必须可以用啊!你下载的是我刚刚上传的v2.0 beta版,这个已经支持WordPress最新版了。
      关于旧文章的略缩图,你需要手动传到OSS相应的目录上去,这样显示上就不会有什么问题了。
      PS:你是新版本的第一个安装用户哦!

      • goooob说道:

        谢谢,给力!我说的小问题是某些文章无法生成新的缩略图,不过我手动处理了

        • 马文建说道:

          某些文章无法生成新的缩略图?你指的是(插件启用后)新创建的文章不能生成缩略图、或者不能把缩略图上传到云存储吗?要是这样的话,不妨详述下。
          要是插件启用前生成的缩略图,那就算了,肯定不能上传,嘻嘻。

  5. 布拉夫斯基说道:

    试了试,新版的确实不好使了,忧桑……

  6. 奇遇说道:

    真心造福人类啊 通过百度搜到这里了 希望这个插件别过时

  7. Nathan.说道:

    你好,我想请问下,我想将文件上传到oss 中的xxx/目录下,请问应该修改插件哪儿?upload_path 是针对wordpress 本地的。

    • 马文建说道:

      “默认上传路径”写“/xxx”,“文件的完整URL地址”写“http://{bucket}.oss.aliyuncs.com/xxx”,前边是上传到的文件夹,后边是根据文件夹拼接URL地址。
      upload_path不仅针对wordpress本地,也对远程文件夹有效,两者相对根目录的位置是一致的。

  8. 爱映“疯”说道:

    马哥!这个是什么情况无法启用插件,因为它引起了一个致命错误(fatal error)。

  9. 周小虫说道:

    楼主你直接开个 github 吧,有问题大家可以提交 issue,或者贡献代码
    https://github.com/IvanChou/aliyun-oss-support

  10. 任康泰说道:

    可不可以把网站以前的图片弄到oss///一个个上传的话.太多了.有没有简单的方法搞定?.还有,修改路径也是个坑.

  11. 张朝栋说道:

    你好!现在阿里云OSS的服务器地址更改了,导致无法正常使用插件,手动修改sdk.class.php中的DEFAULT_OSS_HOST为正确的服务器地址就可以了,希望可以更新一下插件,在设置页面增加选项。 谢谢!

  12. longing说道:

    还有一点,我的资源路径是 “http://article-image.oss-cn-qingdao.aliyuncs.com/Chrysanthemum.jpg”,
    那是不是在“文件的完整URL地址”这栏应该用“http://article-image.oss-cn-qingdao.aliyuncs.com”。都试过了,不管是用oss还是"oss-cn-qingdao"都传不了。

    • 马文建说道:

      最新收到的网友反馈,信息如下:
      “现在阿里云OSS的服务器地址更改了,导致无法正常使用插件,手动修改sdk.class.php中的DEFAULT_OSS_HOST为正确的服务器地址就可以了”
      看看是不是这个原因造成的。

  13. longing说道:

    我用3.9.2试也不正常了,不知道楼上的那些兄弟有没有用相近版本的

  14. 麦石婚礼策划说道:

    图片实际是上传了的,从ftp里面可以看到。但是就是提示错误,不显示出来

    • 马文建说道:

      如果没有猜错的话,是你的配置有问题。上传到OSS而不能正常显示,非常明显,你配置的URL肯定是不对的;另外,上传路径估计配置的也有问题。
      我的博客现在就在用这个插件,所以插件本身肯定是没有问题的。

  15. Jin.JR说道:

    我用的3.9.1 试用了下不成功,不知道问题在哪里,求大牛相助

    • 马文建说道:

      我对新版本不太了解,所以恐怕帮不了你什么忙了。改天我也换到这个版本,看看插件是否能正常工作。你确定现有配置在旧版的WordPress上运行是正常的吗?凭直觉讲,我觉得是你的配置有问题的可能性更大。

  16. 文建你好赞说道:

    找了这么久,还是你这个好用呢!实在太棒了!感谢!

  17. 冠硕说道:

    什么时候出七牛远程附件啊?百度开始收费了,阿里一直收费,新浪开发者云豆有的是但是不支持api,只有七牛有api而且每个月10G的免费流量,简直是我等屌丝穷站长的福音啊,出了之后估计阿里和百度的插件就没人用了,别人写的插件我不愿用,原因是你的远程附件插件系列都支持自定义目录结构,之前我夸过的

    • 马文建说道:

      七牛的API和别的差异性较大,所以相对不好做;我最近比较忙,也没有时间搞这些了,见谅。如果不需要对附件进行删除的话,直接用七牛的镜像存储就OK了。

  18. 西秦公子说道:

    似乎目前wp网站上的版本还是旧版啊。什么时候更新?

  19. 按你的操作提示1046错误。还有个问题就是我的主机在国外,【总是提示我HTTP错误】

    • 马文建说道:

      是不是你关闭了略缩图生成?貌似这个OSS的插件在WP关闭略缩图生成的情况下,会出现HTTP错误(和BCS插件闹混了,记不清是哪一个有问题了,抱歉)。
      我前两天还使用了来着,国内主机,上传图片完全没有问题。

  20. UPDATE `wp_posts` SET post_content=REPLACE(post_content,’www.2udy.com/wp-content/uploads/’,’oss.aliyuncs.com/2udy/’);
    不知道这个SQL命令对不

    • 马文建说道:

      你原来在OSS的资源文件前缀是“http://oss.aliyuncs.com/2udy/”?我记得现在都改用二级域名了,应该是2udy.oss.aliyuncs.com吧?
      反正只要替换后,通过新的URL可以访问原有资源就行。你可以自己看下,如果现有的资源文件,将URL中替换为后来的,能正常访问就是正确的,不能的话,看URL中还缺少哪部分,补上就行了。自己尝试去吧。

  21. 勇子博客说道:

    文件确实是上传到了阿里云OSS中,但是网站显示的还是本地路径的文件,所以没有显示出来,如何解决?

  22. 孙仕军先森说道:

    楼主 着急 我这是3.8.1的 在options.php 修改了之后 文件倒是上传上去了 就是在页面上显示不出来了! 显示的还是原来的图片地址!

    • 马文建说道:

      应该是WP中的“upload_url_path”参数没有修改,所以用的还是原来的域名。
      对于在启用插件前插入的图片,还是会显示原来的URL,插件不会自动修改,你需要自行用SQL语句进行替换。

  23. jack说道:

    支持CNAME吗?

  24. 澄色香味说道:

    启用插件提示错误。requestcore.class.php 这个文件的1030处错误。

    • 马文建说道:

      requestcore.class.php属于OSS SDK中的文件,一般不会报错,所以应该是有的地方没有填写正确所导致的吧。根据我的猜测,应该是你把“默认上传路径”处的点给省略了。
      另外,阿里云论坛有其他童鞋开发的更新的WP插件,功能更加强大。我暂时没有时间维护这个插件。

  25. yufenfen说道:

    在mu模式下可用吗?我试过好像不行。

  26. Pladys说道:

    WordPress 3.5以后的版本,“upload_path”和“upload_url_path”的参数是指两个,我只找到upload_path,对应“wp-content/uploads”

  27. 缘儿也无缘说道:

    哈哈,真的很好诶

  28. 791005771说道:

    你好,我更改你了的插件,更改了一个图片编辑的bug(不知道你改掉了没有),希望你不要介意! 然后我把插件弄成了wordpress mu的! 希望你不要介意! 很高兴能与你一起交流!

  29. 果核Core说道:

    最新的 wp3.5 已经没有后台设置上传路径了。建议改下这个!!!

  30. Koo说道:

    博主对这个插件有更新计划吗

    • 马文建说道:

      目前没有,关键是有的问题莫名其妙,不知道怎么解决;也没有发现新的需求。阿里云论坛上enj0y版主前些天更新的OSS WP插件更好用哦,建议使用。你可以到阿里云论坛上面找找。

  31. david说道:

    我用的3.5.1,到这里也改了,到“/wp-admin/options.php”设置“upload_path”和“upload_url_path”参数就行了。可是上传文件的时候,超过2M的还是不行,到底啥原因啊?

  32. jack.ha说道:

    激活插件后网站的图片加载不出来了.....

  33. jack.ha说道:

    这个不错,有没有dedecms的呢 

  34. 小五说道:

    我安装使用后,文件已经上传到云存储,但是wp后台显示上传出现错误

  35. 指南者说道:

    建议增加HTTP表头缓存设置

  36. 指南者说道:

    好东西,今晚我就把WP附件移到OSS里

  37. 美容美发说道:

    有没有财付通的收款页面 我有开通过那个哦

  38. 刘荣焕说道:

    wp3.5的路径不好改了 得配置wp-config文件 我还是选择每个月定时上传文件修改数据库吧

    • 马文建说道:

      貌似不用吧,到“/wp-admin/options.php”设置“upload_path”和“upload_url_path”参数就行了。我只更新了百度BCS的插件,这个忘了补充了。

      • 刘荣焕说道:

        3.5的隐藏了 修改主题的function.php也可以弄出来 还有一个问题就是有些缩略图的写法上传以后缩略图挂了 写法需要修改 php不很了解 你可以参考一下荒野无灯对这部分的处理办法 希望楼主搞得越来越完善 阿里云应该是速度最快的 价格也还可以

        • 马文建说道:

          好的,虽然个人能力有限,我尽力而为。略缩图挂了,会不会是传输的时候出现了问题?插件理论上是不会出问题的,因为wp生成略缩图后,这个插件只负责传送数据。

  39. 小而美说道:

    媒体库里可以上传文件,文章里上传不了,何解?

  40. licess说道:

    设置好后,上传附件 oss里没有

  41. 云主页说道:

    想让多站点支持,哎,不懂技术!

  42. 小七说道:

    试过又拍云的插件不?建议出一个

  43. 小刀说道:

    相比较而言.我觉得还是用百度的好毕竟还送了个1000元卷子这个还要花钱

  44. 一瓢饮说道:

    谢谢楼主,OSS官方论坛给的插件失效了,刚想自己写一个,就看到楼主已经做了工作了,就直接拿来用啦~

  45. kiyo说道:

    不能绑定域名吗?

  46. kiyo说道:

    为什么我的没有:第四、设置>多媒体,更改“默认上传路径”为’这里的选项?3.51的

  47. Jqw1992说道:

    这个是不是网站快的一个要素啊

  48. 周良说道:

    你可以考虑弄个SAE的,哈哈

  49. 米饭维谷说道:

    OSS官方貌似也有一个WP的插件

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注