Aliyun Cloud Engine(以下簡稱ACE)是基於彈性計算平台的可線性伸縮的應用托管運行環境。應用模板是我們借鑒了業內的App Store的概念,簡化用戶創建應用的步驟,方便應用的推廣。本文只講述PHP應用的模板移植,其它語言請參考相關文檔。
出於安全角度考慮,ACE對本地文件讀寫進行了一些限制,用戶數據建議放在我們的OSS中(開放存儲服務,具備高可靠性及可擴展性的海量數據存儲),文件讀寫都需使用ACE提供的統一接口。ACE支持創建用戶數據目錄,也支持創建源代碼文件上的目錄。
PHP自帶的fread、fwite 已被ACE默認關閉,請使用以下方法實現。
< ?php
Class CeFile{}
Function write($fileName, $content, $sync=0) 文件寫入
$fileName 文件路徑(相對路徑) $content 文件內容 $sync是否需要同步到所有web端,為保證多台web數據同步,默認設為0 返回 true|falseFunction read($fileName) 讀取文件內容
$fileName 文件路徑(相對路徑) 返回文件內容|falseFunction 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);
文件緩存的主要目的是把經常訪問的數據保存在本地文件中,當有請求訪問的時候,直接將數據調出,避免了再次對數據庫的請求的I/O操作,減少數據庫的負載壓力。
ACE給每個應用默認部署兩個實例,當有請求訪問的時候,該請求就會路由到其中的一個實例。ACE具有伸縮性,隨著請求的增加和減少,可以增加或減少實例。為了提高性能,ACE也具有文件緩存功能,如緩存配置信息。當用戶修改配置文件時,應調用文件緩存的功能,實現多台實例間配置信息的同步。
因此,應用中若用到文件緩存,必須使用ACE提供的文件讀寫接口,使用方法同文件讀寫。使用文件緩存部署應將write方法$sync同步參數設置為1。
Memcache緩存管理是AACE為開發者提供的分布式緩存服務,以共享的方式緩存用戶的key-value形式的小數據,以加快數據響應速度,減輕後端數據處理的壓力。
ACE環境下的memchae是默認為開啟的,默認給用戶免費提供64M。若用戶需要使用memcache緩存,注意以下事項。
ACE支持的Memcache 的API如下:
bool Memcache::init ()ACE不支持的Memcache 的API 如下:
bool addServer* *( string $host [, int $port =應用如果使用Memcache緩存,就必須使用ACE提供的memcache緩存接口。Memcache緩存使用方法如下:
< ?php
//連接 $mem = new Memcache(); //創建memcache對象,內部會訪問agent獲取地址 及ID $mem->init();通過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
受本地文件讀寫條件限制等問題,圖片縮略、水印等功能暫不支持,我們會在後續的版本中支持。
ACE提供在線備份數據功能,在創建應用時,可以選擇備份時間點。
如果想從應用中導出數據,則需要使用數據庫客戶端工具進行操作。