阿里云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提供在线备份数据功能,在创建应用时,可以选择备份时间点。

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

时间: 2024-08-31 23:21:20

阿里云ACE的应用模板移植的相关文章

Laravel框架中实现使用阿里云ACE缓存服务

这篇文章主要介绍了Laravel框架中实现使用阿里云ACE缓存服务,本文扩展了一个ACE缓存驱动,以便使用阿里云ACE缓存服务,需要的朋友可以参考下 之前我写了一篇在 Laravel 4 框架中使用阿里云 OCS 缓存的文章,介绍了如何通过扩展 Laravel 4 来支持需要 SASL 认证的阿里云 OCS 缓存服务.有网友问我,ACE 的缓存怎么在 Laravel 4 中使用.我本来觉得应该可以完全用相同的办法,后来自己尝试的时候才发现,ACE 的缓存差别非常大.所以再写一篇,介绍一下如何在

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

阿里云推出ACE已经很长的一段时间了,但是最近的阿里云ACE开始公测了,现在的阿里云使用很是方便,而且在公测期间免费. 阿里云ACE是阿里云的一个一键建站工具,使用阿里云一键建站工具可以快速的安装wordpress博客程序和phpwind论坛程序,很方便,当然,它也支持支持PHP,Java,NODE.JS等语言来编写web应用,使用非常的方便. 新版阿里云开通PHP空间 ACE开通地址http://www.aliyun.com/act/aliyun/2015/win/ace.html?spm=5

一分钟了解阿里云产品:阿里云ACE之初体验

阿里云ACE开始公测了,ACE(Aliyun Cloud Engine) 是一款弹性.分布式的应用托管环境,支持Java.php多种语言环境.帮助开发者快速开发和部署服务端应用程序,并且简化了系统维护工作.搭载了丰富的分布式扩展服务,为应用程序提供强大助力.     ACE(Aliyun Cloud Engine)目前最大的优点就是免费,预计以后也会照着SAE JAE等同类服务提供低廉的收费政策,怀着激动的心情赶紧试用了一下.   可是试用就得做点东西啊,就把之前的一个想法实现了:做一个到期域名

Laravel框架中实现使用阿里云ACE缓存服务_php技巧

之前我写了一篇在 Laravel 4 框架中使用阿里云 OCS 缓存的文章,介绍了如何通过扩展 Laravel 4 来支持需要 SASL 认证的阿里云 OCS 缓存服务.有网友问我,ACE 的缓存怎么在 Laravel 4 中使用.我本来觉得应该可以完全用相同的办法,后来自己尝试的时候才发现,ACE 的缓存差别非常大.所以再写一篇,介绍一下如何在 Laravel 框架中使用阿里云 ACE 的缓存服务. 如何扩展 Laravel 的缓存驱动 在 Laravel 4 中使用 Cache::get($

阿里云ACE整体介绍

  什么是Cloud Engine Cloud Engine(云引擎,简称CE),是阿里云历经多年研发,于今年7月推出的一款基于弹性计算平台的web应用运行环境,能够提供应用的线性伸缩.动态扩容以及多种相关服务. Cloud Engine借鉴并吸纳Google.Amazon.Rackspace等国外知名公司的公有云计算的成功技术经验,结合阿里云多年的技术研发沉淀,保证了该平台的高效和稳定.目前支持PHP和NodeJS两种开发语言,后续会支持更多的开发语言.围绕这个平台,我们也提供了session

阿里云ACE的配置文件YAML基本写法

阿里云的ACE支持弹性自动扩容,使用简单,辅助模块众多,他的配置文件按照YAML标准配置,经常有同学配置了但是达不到预期的效果: 并且如果ace开启WordPress的伪静态需要按照nginx的方式配置而不是Apache的方式配置. 这里介绍一些最常用的配置 a.首先需要注意的是app.yaml文件需要放在svn的根目录而不是网站程序webroot的目录 b.其次配置的时候配置语句的减号"-"前面只能是空格,后面也需要留一个空格,不能是其它符号 c.再其次,若还有问题可以看一下容器日志

一分钟了解阿里云产品:云引擎ACE概述

阿里云发布了诸多产品,今天让我们一起来了解下云引擎ACE(AliCloud Engine)吧! 什么是云引擎ACE呢?下面我来简单介绍下吧.   云引擎是阿里云推出的应用托管平台,支持托管Java.PHP.Node.js.Python等语言开发的Web应用和API服务,大大简化用户在ECS上的应用运维工作. 您只需上传开发完成的应用代码,ACE会自动完成资源分配.运行环境初始化.程序启动.负载均衡配置.运行状况监控.日志采集.自动伸缩等一系列连贯的部署工作.   与传统应用运维相比, ACE都有

我的阿里云探索之路(一)

在使用阿里云之前,我最早是使用过google的app引擎,由于后来google退出中国,陆陆续续一些服务慢慢的都关掉了,最终我的webapp也不能进行下去了. 再后来,我使用过新浪ace,新浪ace在国内最早推出app引擎,可是我php不熟,实验体验了一把,热情了那么一段时间,可是没有过多久,自己的热情就慢慢的消退了. 再后来百度推出ace,我又转到百度ace,因为我java比较熟悉,百度的aceForJava就用了起来,自己使用了一段时间,光有ace还不行,还得有数据库,我选了百度的mysql

普元阿里云发布EOS-Cloud企业云平台

普元软件日前与阿里云联合推出企业云平台"EOS-Cloud"解决方案. "EOS –Cloud"平台结合了普元EOS Platform V7以及阿里云ACE平台两方产品的技术,中小型企业可以由原先使用开源平台的"非云开发",实现向"云开发"的转面,提升企业自身的创新能力和运营效益. 普元CTO焦烈焱对搜狐IT称,"EOS-Cloud"是一套面向中小企业的PaaS平台,旨在让应用开发变得更轻松.目前中小企业由