在项目过程中,需要程序日志记录重要数据,当然首选使用json来记录数据,将对象进行相应的json编码后,使用file_put_contents将数据持久化,但是总提示我权限不足,折腾了一阵后,只得去云平台论坛去搜索,果然有相关的问题,先总结如下:
(1)动态的文件创建在sae里面是不可能的!包括数据表的动态建立;
(2)数据持久化,sae给出了解决方案,在左侧的服务中有storage服务,可以进行file的写入
使用可以参考api文档:
http://apidoc.sinaapp.com/class-SaeStorage.html
我给出两个我项目中的例子
1.读
function loadcurrentdatelog()
{
$storage=new SaeStorage();
$domain='myjson';
$filename='currentdatelog.json';
$currentlogcontent=$storage->read($domain,$filename);
return json_decode($currentlogcontent,true);
}
2.写
function updatecurrentdatelog($currentlogstring)
{
$storage=new SaeStorage();
$domain='myjson';
$filename='currentdatelog.json';
$result=$storage->write($domain,$filename,$logstring);
}
呵呵,也挺方便吧,不过,这些限制总是不让人不舒服。
题外话:在SAE部署计划任务时,我使用php script 通过exec来执行crontab,也是不明不白的报错,看了官方文档后,此类系统级操作都是禁用的,但是SAE云平台同样提供了CRON服务,也在服务那一列,我们只需按照例子格式添加到xxx.yaml就可以配置计划调度了,可以说也算方便!