在百度开放云平台上构建Web App

转载 2013年05月14日 21:12:47
   在3月23日的百度开发者大会上,百度推出了开放云计算平台来帮助开发者构建分布式网络应用。它包括云存储、云环境、关系服务、消息服务等组成部分,开发者可以利用云平台方便的编写分布式网络应用,无需考虑集群扩容、负载均衡等问题。


        百度开放云平台的优点包括:

1、  容量大:云存储支持最高2T的单文件数据容量;个人云存储用户存储初始空间高达15G,无上限。

2、  多语言支持:支持PHP和Java,后继支持Python。

3、  功能全面:包括fetchurl、task queue、sql、memcache,提供监控和日志等服务。

4、  使用方便:可通过SVN或者在线编辑器编辑代码,另外目前还有Eclipse插件,未来将支持本地开发环境。

5、  稳定:百度的服务稳定可依赖。

        下面我将先介绍如何使用百度开放云平台,然后结合百度开放API和HTML5来构建一个简单的移动Web App。

        需要注意的是,现在百度开放云平台只向收到邀请码的开发者开放,未来会面向广大开发者开放。

百度开放云平台之云环境(百度应用引擎-Baidu App Engine)

        云环境可以帮助我们搭建各种Web服务。

        首先打开http://yun.baidu.com,点击登录按钮登录百度帐号。有权限的用户会看到下面的界面。

        点击进入管理后台,选择云环境-我的应用-创建应用。

        填写表单内容,选择所需的语言环境,提交。可以看到我们的应用创建成功了。

        

        点击版本管理,进入应用信息页面之后点击创建新版本,并输入版本号,创建新版本。


        版本创建成功后我们可以用多种方式来管理代码:

1)  在线管理:点击编辑代码,进入在线管理界面。在如下界面里我们能自由添加、修改代码。

2)  SVN管理:我们可以通过应用信息页面里的SVN地址进行连接,通过SVN方式管理代码。请注意,SVN用户名、密码和你的百度帐号相同。

        作为示例,我们在在线管理页面里修改index.php的代码为“echo ‘Iam Jiangyujie.’”。然后点击应用信息页面里版本前面的当前版本选择框,使版本生效。

        此时,我们访问应用对应的域名即可看到index.php的输出。

百度开放云平台之云存储(Baidu Personal Cloud Storage)

        云存储可以放置用户的各种文件,例如实现网盘、相册等。

        在开放云平台管理后台里点击左侧的云存储,进入我的Bucket界面,然后选择创建Bucket(你可以把它想成一个桶,用来存放你的文件;你可以拥有多个独立分隔的桶)。输入Bucket名称,并选择所需的存储容量、流量、请求数,确定完成。

        创建成功后,在Bucket列表里双击进入所需要的桶。在里面我们可以看到上传文件选项。

        作为示例,我们上传一个测试文件test.htm,文件内容为“Yujie test bae.”。

        上传完毕后,我们如果要访问这个文件,必须经过URL签名。点击左侧的菜单进入URL签名,填写Bucket名和Object分别为“test-bucket”和“/test.htm”。点击“Sign”后我们可以获得该文件四种HTTP协议下的URL地址。

        我们使用第一个GET地址即可正常访问此文件。

百度开放云平台之Web App

        我在百度开发者大会上讲到的例子很有趣,现在我们使用HTML5、百度开放API以及云平台来搭建一个手机拍照签到上传的应用。

1、  地理定位

        地理定位使用HTML5的GeolocationAPI获取经纬度,关键代码如下:

  1. if(navigator.geolocation){  
  2.          navigator.geolocation.getCurrentPosition(displayLocation,displayError);  
  3. }  

        经纬度转换为实际地理位置我们用百度地图开放API,需要引用相应的包。

  1. <scriptsrcscriptsrc="http://api.map.baidu.com/api?v=1.3"type="text/javascript"></script>  
  2.         我们在上面getCurrentPosition的参数方法里调用百度API,代码如下。  
  3. functiondisplayLocation(position) {  
  4.          getAddress(position.coords.longitude,position.coords.latitude);  
  5. }  
  6.    
  7. functiongetAddress(lon, lat) {  
  8.          var map = newBMap.Map("container");   
  9.    
  10.          // 创建地理编码实例   
  11.          var myGeo = new BMap.Geocoder();   
  12.          // 根据坐标得到地址描述   
  13.          myGeo.getLocation(new BMap.Point(lon,lat), function(result){   
  14.           if (result){  
  15.                    document.getElementById("locationData").innerHTMLresult.address;   
  16.           }   
  17.          });  
  18. }  

2、拍照上传

        关于拍照上传的部分已经在《如何使用HTML5实现拍照上传应用》一文中有描述,不再详细解释。

        我们完成的代码包括前端实现拍照和定位的index.html以及后台接收图片和地理位置信息的upload.php,放置到云环境中即可生效。

3、效果查看

        我们在手机上用支持HTML5Geolocation和The Media Capture API的浏览器(例如最新的OperaMobile)打开index.html的URL可查看到最后的效果。效果图如下:

总结

        百度开放云平台非常强大,使用起来也很方便。中小开发团队可以使用百度开放云平台快速的构建各种稳定的服务和创新应用,迅速接入百度海量用户的需求。

在百度开放云平台上构建Web App

在3月23日的百度开发者大会上,百度推出了开放云计算平台来帮助开发者构建分布式网络应用。它包括云存储、云环境、关系服务、消息服务等组成部分,开发者可以利用云平台方便的编写分布式网络应用,无需考虑集群扩...
  • u011449127
  • u011449127
  • 2013年08月26日 11:20
  • 572

vs的使用

VS常用快捷键及修改最近我开始使用win 7来开发cocos2dx_lua,开始学习使用VS.作为一直使用Eclipse和xcode的人,这个东西简直让人难受.记录一些项目开发中不熟悉的东西. 管理插...
  • Zengchen2
  • Zengchen2
  • 2015年08月28日 10:02
  • 262

codevs1063

题目地址:http://codevs.cn/problem/1063/ 分析: 堆 代码: var t,n,i,d,e,ti:longint; a,b:array[1..1000...
  • BOYxiejunBOY
  • BOYxiejunBOY
  • 2015年07月28日 14:08
  • 267

JAVA的垃圾回收与.net中的GC,C++析构函数之间的异同点?

垃圾回收的缩写就是GC。无论java还是C#的GC都是相应的虚拟机用来释放无用内存的机制,不同之处在于他们用的虚拟机不同。C++的析构函数是程序员手动写的回收内存和善后处理的函数。其功能相当与java...
  • chengmeng_123
  • chengmeng_123
  • 2017年11月27日 09:51
  • 41

二进制转换与此平台上的长模式不兼容

在VMware Workstation上安装CentOS操作系统时,弹出窗口“二进制转换与此平台上的长模式不兼容”。...
  • u013806814
  • u013806814
  • 2015年09月07日 23:56
  • 12542

halcon与VS2013的配置 可以用

件环境:win7 64位系统 1.    新建一个MFC项目 (如下图)   2.    配置 2.1           选择配置属性里面的C/C++ --常规—附加...
  • qq_36930777
  • qq_36930777
  • 2017年04月17日 16:06
  • 273

在QForm平台上构建质量管理系统

在QForm平台上构建的质量管理系统 在QForm平台上构建的质量管理系统,主要涉及到质量检验,不合品处理,供应商管理,售质量管理,研发中心过程控制,设务管理,生产工艺,实验室设备管理,质监中心,质量...
  • qform
  • qform
  • 2006年11月04日 03:27
  • 622

解决vmware“二进制转换与此平台长模式不兼容.....”的问题

问题说明: 启动vmware出现:1、二进制转换与此平台长模式不兼容....等等字样; 2、vmware启动一会,系统直接重启,这个现象出现在惠普电脑上 问题原因: 出现这样的原因一般都是由于系统...
  • enson16855
  • enson16855
  • 2014年06月12日 15:50
  • 39189

关于原创文章的发布技巧以及平台

关于我们这些经常写作的人来说,文章写好之后,发布在哪里也很重要,文章发布的平台决议了你的阅读受众,假如我们文章写得好,又可以发布在适宜的平台,就可以积聚一大批的读者,当读者很多很忠实的时分,就能够变成...
  • shu52
  • shu52
  • 2017年03月11日 13:17
  • 232

产品经理的素质(集思广益探讨版)

原文标题:产品经理(尤其是创业的)需要懂技术吗?懂到什么程度? 10月222012年 能不能简单介绍一下对于没有技术背景的人怎样达到这个程度,有没有好的方法?或者好的资源可以推...
  • sunnyboy9
  • sunnyboy9
  • 2016年03月13日 11:52
  • 1599
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在百度开放云平台上构建Web App
举报原因:
原因补充:

(最多只允许输入30个字)