开发者社区> 问答> 正文

【经验分享】在不改变网站源代码的情况下使用OSS温育坤


大家好,我是一名PHP开发者,叫温育坤。

刚刚在论坛里看的时候,无意中发现很多站长朋友都想使用OSS但无从入手,现在我分享一下我的操作经验(仅有思路,不含代码)。

OSS的好处我就不多说了,从决定采用OSS说起。

决定采用OSS之后我们需要考虑两个问题:

       第一、需不需要大规模修改网站的源代码。
       第二、用OSS会不会增加访客上传图片其他附件的响应时间。
       第三、万一以后不用OSS能不能切换回来。

第一个问题,我们希望答案是:不需要。
第二个问题,我们希望答案是:不会。
第三个问题,我们希望答案是:能。

确定了方向后,怎么实现呢?
答案是异步同步附件到OSS。
      第一步:在数据库里建一个本地附件地址与OSS地址一一对应的表(下称 OSS对应表)。
          参考结构:
            id                           编号 INT  自加
            tablename             附件本地地址所在表名
            tableid                   附件本地地址所在表对应的ID
            tablekey                附件本地地址所在表对应的字段名
            localaddress         附件本地地址
            ossaddress           附件OSS地址
            update                  是否更新     1 是  0 否
            updatetime           更新时间    unix时间
     第二步:遍历本地数据库用正则表达式匹配附件并保存到OSS对应表中。注:这里第一次是要遍历完本地,在每日的更新中,为节省服务器资源,应该只遍历有可能更新的表。
     第三步:利用DNSPOD的D监控等类似的定期访问网站服务,异步将附件更新到OSS中。
           参考做法:
                第一步:新建一个二级站点,做为监控对像,并绑定一个子域名。
                第二步:开发相关的同步程序。
                            程序思路:
                                    1、检测是否有没有更新的记录。
                                    2、如果有,把附件更新到OSS中,并修改本地数据库中相应的记录,建议每次更新几个附件即可,并且在凌晨的时候更新。
                                         注,为了以后可以更容易还原到不需要OSS状态中,建议本地地址除第一个目录地址外其他地址保存一致。
                                              如:
                                                    本地地址是:/uploads/image/2015/0324/附件名
                                                    OSS地址应是:oss域名/uploads_oss/image/2015/0324/附件名
                                          这样以后换回不需要OSS只需要将数据库中的“http://oss.域名/uploads_oss/”换成“/uploads/”就可以了。
                                   3、如果没有,遍历有可能有新建本地附件的表,将附件记录更新到OSS对应表中。

这样做我们三个问题都顺利解决了。
同步附件到OSS的相关工作是完全独立于网站的,不修改网站本身的任何源代码,访客上传附件也是上传到本地,并没有增加上传开支。同时还可以两地备份,保证 以后可以切换回来的可操作性。



这个思路有一定缺陷:当天的附件会到凌晨才更新到OSS中,当天附件的访问还是会占用到网站服务器的带宽。

希望对大家有帮助,同时希望有朋友开发个万用版的同步程序,分享给大家,或者大家可以回复,如果需要的人很多,我也可以开发个分享出来。

展开
收起
温育坤 2015-03-24 10:43:38 7129 0
6 条回答
写回答
取消 提交回答
  • 用心服务
    现在有个更好的方法 用CloudFs
    2015-05-22 19:49:43
    赞同 展开评论 打赏
  • Re【经验分享】在不改变网站源代码的情况下使用OSS温育坤
    我觉得很好!!!!!!!
    2015-05-22 13:59:52
    赞同 展开评论 打赏
  • Re【经验分享】在不改变网站源代码的情况下使用OSS温育坤
    这个已经有人做了产品出来了,只不过现在只有Linux版本,没有windows版本。不需要改代码。

    看我发的帖子。
    http://bbs.aliyun.com/read/236273.html?spm=5176.7189909.0.0.qnkgAW
    2015-04-01 12:59:35
    赞同 展开评论 打赏
  • 我做了一个艰难的决定 加点分给你
    2015-03-31 13:03:14
    赞同 展开评论 打赏
  • LT是个伪程序员
    我做了一个艰难的决定 加点分给你
    2015-03-25 20:11:24
    赞同 展开评论 打赏
  • Re【经验分享】在不改变网站源代码的情况下使用OSS温育坤
    这也是个不错的解决方法
    2015-03-25 00:59:23
    赞同 展开评论 打赏
滑动查看更多
问答排行榜
最热
最新

相关电子书

更多
OSS运维进阶实战手册 立即下载
《OSS运维基础实战手册》 立即下载
OSS运维基础实战手册 立即下载