记录一个七牛云 Trying to get property of non-object|getUpHost问题

首先来看报错


image.png

错误定位在这行
$host = $zone->srcUpHosts[0];
接着把$zone打印了下

image.png

null值,也就是说七牛的这个sdk在这里没查找到对应的上传域名(七牛sdk中绑定的域名)

  • 解决方法就是想办法让七牛初始化的时候拿到上传的域名
    第一种改代码:
    • 在七牛的php-sdk包中找到src/Qiniu/Zone.php文件,找到属于你OSS的机房区域
      然后修改上传初始化对象代码,手动指定属于你的上传域名
//初始化上传对象时
$token     = self::qiNiuUpToken();    //我这里是封装,根据自己项目的代码逻辑来
$zone = new Zone(array('upload-z2.qiniup.com'));
$cfg = new Config($zone);
$upManager = new UploadManager($cfg);
//之后是正常调用
list($ret, $error) = $upManager->putFile($token, $key, $file_path);
  • 第二种是,在服务器上用wget或则pinghttp://net.qiniuts.com/这个域名或则是src/Qiniu/Zone.php文件中属于你的域名看看是否能通。
    不通就说明是你的服务器dns解析不了七牛的域名,可以让你们公司的运维看看是什么具体原因不解析,我这边直接改了个Linux的配置文件就行了/etc/resolv.conf中加了行nameserver 8.8.8.8

希望能帮到遇到相同问题的后来者,强调:错误定位明确了就好处理了。

你可能感兴趣的:(记录一个七牛云 Trying to get property of non-object|getUpHost问题)