首先來(lái)看報(bào)錯(cuò)
image.png
錯(cuò)誤定位在這行
$host = $zone->srcUpHosts[0];
接著把$zone
打印了下
image.png
null值,也就是說(shuō)七牛的這個(gè)sdk在這里沒(méi)查找到對(duì)應(yīng)的上傳域名(七牛sdk中綁定的域名)
- 解決方法就是想辦法讓七牛初始化的時(shí)候拿到上傳的域名
第一種改代碼:- 在七牛的php-sdk包中找到src/Qiniu/Zone.php文件,找到屬于你OSS的機(jī)房區(qū)域
然后修改上傳初始化對(duì)象代碼年枕,手動(dòng)指定屬于你的上傳域名
- 在七牛的php-sdk包中找到src/Qiniu/Zone.php文件,找到屬于你OSS的機(jī)房區(qū)域
//初始化上傳對(duì)象時(shí)
$token = self::qiNiuUpToken(); //我這里是封裝蒸殿,根據(jù)自己項(xiàng)目的代碼邏輯來(lái)
$zone = new Zone(array('upload-z2.qiniup.com'));
$cfg = new Config($zone);
$upManager = new UploadManager($cfg);
//之后是正常調(diào)用
list($ret, $error) = $upManager->putFile($token, $key, $file_path);
- 第二種是,在服務(wù)器上用wget或則ping
http://net.qiniuts.com/
這個(gè)域名或則是src/Qiniu/Zone.php
文件中屬于你的域名看看是否能通。
不通就說(shuō)明是你的服務(wù)器dns解析不了七牛的域名拼窥,可以讓你們公司的運(yùn)維看看是什么具體原因不解析裆泳,我這邊直接改了個(gè)Linux的配置文件就行了/etc/resolv.conf
中加了行nameserver 8.8.8.8
希望能幫到遇到相同問(wèn)題的后來(lái)者叹洲,強(qiáng)調(diào):錯(cuò)誤定位明確了就好處理了。