SAE部署ThinkPHP之七牛问题

七牛遇到的问题就比较简单了为了方便以后查阅方便我就直接上代码了.

在使用七牛官方PHP-SDK的时候在SAE平台配置好信息和编写好代码后一直出现

file_put_contents(/.qiniu_phpsdk_hostscache.json): failed to open stream:Permission denied

以上提示无权限问题导致.
都知道SAE是禁止I/O读写的但是file_put_content函数却没有被禁用.度娘一下得到很多个结果.整理记录下主要分为两种方法

第一种Storage

当数据量较大和不常用的情况下可以使用Storage,在Storage中建立一个Bucket例如叫maple 然后代码就可以这么写了
$file="saestor://maple/log.txt"; file_put_contents($file,$user);

第二种Memcached

实例化一个Memcached以后就可以直接使用了,直接上代码

file_put_contents( 'saemc://'.PATH.'/mycode.txt','dummy test'); //这种方式对于本地读写其他函数如file_get_contents,fopen,fwrite等也同样适用,例如要想读去上面的文件只需要 file_get_contents( 'saemc://'.PATH.'/mycode.txt','dummy test'); //即可

好了该说正题了,七牛中我就遇到这个问题

直接上代码吧
Zone.php

//报错是在150行,但是调用的是hostCacheFilePath //直接将$home的路径改成上面第二种方法在上传文件搞定 private function hostCacheFilePath() { //$home = getenv('HOME'); $home = "saemc://"; return $home . 'qiniu_phpsdk_hostscache.json'; }