2016-03-15 51 views
0

有沒有一種方法來實現通過下載。 google-php-api?我曾嘗試以下:使用php從谷歌雲存儲下載

  • 使用的MediaLink並試圖捲曲對象(返回「需要登錄」)

  • 閱讀狂飲響應流(回來空,即使所有的頭有正確的數據)

我能夠看到一切,但通過文件的正文。 API。

編輯:

我當然能夠通過的MediaLink下載文件,採取將其設置爲公共 - 但這不會對這種情況下工作。

+0

我在同一時間有同樣的問題。我讀了這個:http://stackoverflow.com/questions/17855705/downloading-files-using-google-api-php-client,但它似乎新的谷歌PHP API不再使用'Google_Http_Request'。 –

+0

@ObinwanneHill謝謝你指點我,讓我找出其餘的!我已經發布了你需要做的事情的代碼片段的答案。 –

回答

1

該解決方案如下......

您必須授權的HTTP請求,要做到這一點,你必須:

$object = $service->objects->listObjects(BUCKET, OBJECT); 
$http = $client->authorize(); 
$request = new GuzzleHttp\Psr7\Request('GET', $object->getMediaLink()); 
$response = $http->send($request); 
$body = $response->getBody()->read($object->getSize()); 

上面是一個小片段,但你需要什麼的JIST獲取文件的內容。

+0

謝謝。我錯過了'$ response-> getBody() - > read($ object-> getSize())'位。現在效果很好 –