七牛云存储PHP SDK报错Warning: file_put_contents

使用七牛云存储PHP SDK上传文件时,报错:Warning: file_put_contents(/.qiniu_phpsdk_hostscache.json),但上传文件成功。

根据错误提示找到Zone.php第149行和第150行:

$path = $this->hostCacheFilePath();
file_put_contents($path, json_encode($this->hostCache), LOCK_EX);

起初猜测网站目录没有写入权限,在设置读写权限后仍然报错,通过第149行代码找到第156和第157行:

$home = getenv('HOME');
return $home . '/.qiniu_phpsdk_hostscache.json';

测试了一下getenv(‘HOME’)没有输出,因此造成file_put_contents无法写入,于是将这两行代码替换为:

return __DIR__ . '/.qiniu_phpsdk_hostscache.json';

至此问题已解决。

阿里云