阿里云ACE的应用模板移植

Aliyun Cloud Engine(以下简称ACE)是基于弹性计算平台的可线性伸缩的应用托管运行环境。应用模板是我们借鉴了业内的App Store的概念,简化用户创建应用的步骤,方便应用的推广。本文只讲述PHP应用的模板移植,其它语言请参考相关文档。

1. 文件、目录读写

出于安全角度考虑,ACE对本地文件读写进行了一些限制,用户数据建议放在我们的OSS中(开放存储服务,具备高可靠性及可扩展性的海量数据存储),文件读写都需使用ACE提供的统一接口。ACE支持创建用户数据目录,也支持创建源代码文件上的目录。

PHP自带的fread、fwite 已被ACE默认关闭,请使用以下方法实现。

< ?php

Class CeFile{}

Function write($fileName, $content, $sync=0) 文件写入

$fileName 文件路径(相对路径)

$content 文件内容

$sync是否需要同步到所有web端,为保证多台web数据同步,默认设为0

返回 true|false

Function read($fileName) 读取文件内容

$fileName 文件路径(相对路径)

返回文件内容|false

Function delete($fileName) 删除文件

$fileName 文件路径(相对路径)

返回 true|false

成员变量errno 为错误代号

成员变量errmsg 为返回的错误信息供debug时使用

?>

ACE文件读写方法如下:

//创建cefile对象

$ce = new CeFile();

//文件写入

$ce->write($fileName, $content, $sync=0);

//读取文件内容

$ce->read($fileName);

//删除文件

$ce->delete($fileName);

2. 文件缓存部署

文件缓存的主要目的是把经常访问的数据保存在本地文件中,当有请求访问的时候,直接将数据调出,避免了再次对数据库的请求的I/O操作,减少数据库的负载压力。

ACE给每个应用默认部署两个实例,当有请求访问的时候,该请求就会路由到其中的一个实例。ACE具有伸缩性,随着请求的增加和减少,可以增加或减少实例。为了提高性能,ACE也具有文件缓存功能,如缓存配置信息。当用户修改配置文件时,应调用文件缓存的功能,实现多台实例间配置信息的同步。

因此,应用中若用到文件缓存,必须使用ACE提供的文件读写接口,使用方法同文件读写。使用文件缓存部署应将write方法$sync同步参数设置为1。

3. Memcache缓存部署

Memcache缓存管理是AACE为开发者提供的分布式缓存服务,以共享的方式缓存用户的key-value形式的小数据,以加快数据响应速度,减轻后端数据处理的压力。

ACE环境下的memchae是默认为开启的,默认给用户免费提供64M。若用户需要使用memcache缓存,注意以下事项。

ACE支持的Memcache 的API如下:

bool Memcache::init ()
array Memcache::get ( array $keys [, array &$flags ] )
bool Memcache::set ( string $key , mixed $var [, int $flag [, int $expire ]] )
bool add ( string $key , mixed $var [, int $flag [, int $expire ]] )
bool replace ( string $key , mixed $var [, int $flag [, int $expire ]] )
bool decrement ( string $key [, int $value = 1 ] )
bool increment ( string $key [, int $value = 1 ] )
bool delete ( string $key [, int $timeout = 0 ] )
bool close ()

ACE不支持的Memcache 的API 如下:

bool addServer* *( string $host [, int $port =
11211 [, bool $persistent [, int $weight [, int $timeout [, int $retry_interval [, bool
$status [, callback $failure_callback [, int $timeoutms ]]]]]]]] )
bool connect* *( string $host [, int $port [, int $timeout ]] )
bool flush* *( void )
bool* *pconnect ( string $host [, int $port [, int $timeout ]] )
bool setServerParams* *( string $host [, int $port =
11211 [, int $timeout [, int $retry_interval = false [, bool $status [, callback$failure_callback ]]]]] )

应用如果使用Memcache缓存,就必须使用ACE提供的memcache缓存接口。Memcache缓存使用方法如下:

< ?php

//连接

$mem = new Memcache(); //创建memcache对象,内部会访问agent获取地址 及ID

$mem->init();

//保存数据

$mem->set('key1', 'This is first value', 0, 60);

$val = $mem->get('key1');

//替换数据

$mem->replace('key1', 'This is replace value', 0, 60);

$val = $mem->get('key1');

//保存数组

$arr = array('aaa', 'bbb', 'ccc', 'ddd');

$mem->set('key2', $arr, 0, 60);

$val2 = $mem->get('key2');

//删除数据

$mem->delete('key1');

$val = $mem->get('key1');

//关闭连接

$mem->close();

?>

4. 文件上传

通过Web上传的文件都是基于OSS的存储(OSS是阿里云提供的开放存储服务,用户可以利用OSS搭建图片、视频等多媒体分享网站,个人/企业数据备份等基于大规模数据的服务)。

由于ACE平台的限制,其上传的文件不能存储在本地,只能存储在OSS中,必须使用ACE提供的上传文件接口,文件上传后会生成对应的url。PHP自带的move_uploaded_file 方法已不能使用,请使用ACE提供方法。

文件上传方法如下:

move_uploaded_file($tmp_name, $filename)

替换为:

$ce = new ACEStorage();

$result = $ce->upload($tmp_name, $filename);

#$rs1 = $ce->errmsg(); 输出错误信息

#$rs2 = $ce->errno();

$result为返回的附件文件路径,可直接访问,如:

www.domain.com/aliyun_ce_storage/$filename

5. 图片缩略、水印等特殊问题

受本地文件读写条件限制等问题,图片缩略、水印等功能暂不支持,我们会在后续的版本中支持。

6. 数据备份恢复问题

ACE提供在线备份数据功能,在创建应用时,可以选择备份时间点。

如果想从应用中导出数据,则需要使用数据库客户端工具进行操作。

(0)

相关推荐

  • 阿里云ACE的使用和评测及安装PHP程序的方法

    阿里云推出ACE已经很长的一段时间了,但是最近的阿里云ACE开始公测了,现在的阿里云使用很是方便,而且在公测期间免费。 阿里云ACE是阿里云的一个一键建站工具,使用阿里云一键建站工具可以快速的安装wo ...

  • 阿里云ACE整体介绍

    什么是Cloud Engine Cloud Engine(云引擎,简称CE),是阿里云历经多年研发,于今年7月推出的一款基于弹性计算平台的web应用运行环境,能够提供应用的线性伸缩、动态扩容以及多种相 ...

  • 阿里云短信接口怎么使用

    现在很多工作和生活中的场景都需要用到手机短信来做过通知,确认,验证的手段,那么如果使用阿里云短信接口来发短信呢,下面分享下这个过程 操作方法 01 首先第一步要在阿里云注册,并做实名认证,以便获取后面 ...

  • 如何开通阿里云短信服务?

    阿里云短信服务可以登录身份验证,注册验证,修改密码,等等很方便. 操作方法 01 登录阿里云后台,鼠标放在产品,找到短信服务,点击进去. 02 短信服务页面有个开通短信服务,直接开通就可以了. 03 ...

  • 阿里云虚拟空间如何绑定二级目录

    我们都知道阿里云的虚拟空间本身是没有绑定二级目录的功能的,那么我们怎么实现呢? 操作方法 01 域名解析以及绑定:解析一个二级域名,手机站一般以m开头,如m.xxx.com,r然后绑定在自己的空间上. ...

  • 佳域G4最新阿里云OSV2.1刷机包优化流畅又省电

    操作方法 01 佳域G4最新阿里云OS V2.1刷机包 深度清理优化.流畅又省电 ==================☆详细特性☆=================== Rom简单介绍 移植卓普C2的 ...

  • 阿里云邮箱客户端无法使用怎么办

    阿里云邮箱为什么客户端无法使用 成功绑定阿里云邮箱,需要设置客户端密码才可使用客户端收发阿里云邮箱邮件。 操作方法:登录web邮箱, 点击“客户端密码”-选择“启用客户端代收功能”设置“客户端密码”保 ...

  • 阿里云主机的安装硬盘挂载数据盘加载或修改/www

    因阿里云主机分系统盘和数据盘,发现论坛有比较多的人是用阿里云主机的 都说这些怎么加载或加载到/www目录 这里做下说明 硬盘的加载和格式化这里就不说了,具体可看 http://www.wdlinux. ...

  • 阿里云邮箱如何注册 阿里云邮箱注册图文步骤

    此信息已经失效 但是无法删除 由于雅虎邮箱2013年8月19日要停止服务,所有的雅虎邮箱邮件从4月18日期开始迁至阿里云邮箱里去,那么怎么注册阿里云邮箱呢?如果你有雅虎邮箱那么可以跳过前面 手机 方法 ...