【经验分享】在不改变网站源代码的情况下使用OSS温育坤-问答-阿里云开发者社区-阿里云

开发者社区> 温育坤> 正文

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

2015-03-24 10:43:38 6566 6

大家好,我是一名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中,当天附件的访问还是会占用到网站服务器的带宽。

希望对大家有帮助,同时希望有朋友开发个万用版的同步程序,分享给大家,或者大家可以回复,如果需要的人很多,我也可以开发个分享出来。
取消 提交回答
全部回答(6)
  • chinaoc
    2015-05-22 19:49:43
    现在有个更好的方法 用CloudFs
    0 0
  • 喜喜喜喜
    2015-05-22 13:59:52
    Re【经验分享】在不改变网站源代码的情况下使用OSS温育坤
    我觉得很好!!!!!!!
    0 0
  • 小白兔灰狼
    2015-04-01 12:59:35
    Re【经验分享】在不改变网站源代码的情况下使用OSS温育坤
    这个已经有人做了产品出来了,只不过现在只有Linux版本,没有windows版本。不需要改代码。

    看我发的帖子。
    http://bbs.aliyun.com/read/236273.html?spm=5176.7189909.0.0.qnkgAW
    0 0
  • osswhatde
    2015-03-31 13:03:14
    我做了一个艰难的决定 加点分给你
    0 0
  • 千鸟
    2015-03-25 20:11:24
    我做了一个艰难的决定 加点分给你
    0 0
  • 看不剑
    2015-03-25 00:59:23
    Re【经验分享】在不改变网站源代码的情况下使用OSS温育坤
    这也是个不错的解决方法
    0 0
滑动查看更多
相关问答

17

回答

【大咖问答】对话PostgreSQL 中国社区发起人之一,阿里云数据库高级专家 德哥

阿里ACE 彭飞 2019-07-10 09:36:10 974198浏览量 回答数 17

162

回答

惊喜翻倍:免费ECS+免费环境配置~!(ECS免费体验6个月活动3月31日结束)

豆妹 2014-10-29 17:52:21 223054浏览量 回答数 162

8

回答

OceanBase 使用动画(持续更新)

mq4096 2019-02-20 17:16:36 333935浏览量 回答数 8

110

回答

OSS存储服务-客户端工具

newegg11 2012-05-17 15:37:18 292349浏览量 回答数 110

38

回答

安全组详解,新手必看教程

我的中国 2017-11-30 15:23:46 256911浏览量 回答数 38

21

回答

请教一下数据量有100万条左右要什么配置?

易网网络 2013-03-27 15:18:02 192368浏览量 回答数 21

249

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 302644浏览量 回答数 249

1

回答

阿里云开发者论坛一周精粹期刊汇总 -  2018.12

福利达人 2018-03-06 16:42:35 205832浏览量 回答数 1

24

回答

【精品问答】python技术1000问(1)

问问小秘 2019-11-15 13:25:00 471587浏览量 回答数 24

2

回答

区域选择帮助

fanyue88888 2012-12-07 15:54:30 204028浏览量 回答数 2
+关注
0
文章
1
问答
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载