2016-02-27 45 views
1

我成功上傳到API的圖像是這樣的:谷歌驅動器上傳圖片 - 數據不返回webContentLink - 直接permenant鏈接

https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart

Authorization: 'Bearer ' + token, 
'Content-Type': 'multipart/form-data; boundary="' + boundary + '"' 
--data: multipartRequestBody 

其中multipartRequestBody是:

{ 
    name: 'screenshot.png', 
    mimeType: 'image/png', 
    // parents: ['0B5IwavgVGMN9ekR2dEhuaUxkZTA'] // set this to the id of a the folder you want to upload it into 
}; 

是否有一些密鑰可以提供給我的mulitpartRequestBody,它會告訴GDrive將其作爲公共共享文件上載並返回在webContentLink?我可以使用src<img src="...">而不限制視圖帶寬?

我試過設置writersCanShare: true但是它仍然不會返回webContentLink。我也嘗試加入type: 'anyone', role: 'reader',但那也沒用。

基本上我試圖做什麼https://drive.google.com/uc?export=view&id={fileId}做的,但在insert調用的API。

感謝

+1

一旦Files資源被檢索(即使用'get'),就可以訪問webContentLink。根據[文檔](https://developers.google.com/drive/v3/web/manage-downloads#viewing_files_in_a_browser),一旦您指定了它,就不需要授權。insert應該能夠擁有'webContentLink',因爲它也使用文件資源作爲響應。還有其他方式可以下載文件,但我認爲這些文件不適用於你想要的情況。 – adjuremods

+0

@adjuremods感謝我實驗過的輸入,並且我必須首先隨後用'files.insert'寫入,然後設置'role = reader的權限,type = anyone,withLink = true',用'permissions.insert'作爲id,然後我必須用'files'請求領域'webContentLink' – Noitidart

回答

1

簡短的回答您的所有需求是否定的。

雲端硬盤不是爲免費的公共託管服務設計的,而是在人與人之間共享/查看/編輯內容。如果您真的試圖以「視頻帶寬不受限制」的方式使用它,您將會遇到帶寬限制,濫用檢測等問題。

另一個主要部分是,您將不得不在files.insert調用中返回的ID請求files.get請求 - 您將無法在插入時在單個API調用中執行此操作。

使用Google Cloud Storage的效果會更好,它的REST/JSON API類似於您使用的驅動器。

+0

感謝Dan對Google雲存儲的想法!現在我迷上了google drive,就像你說的 - 我不得不先用'files.insert'上傳,然後設置'role = reader的權限,類型=任何人,withLink = true'爲具有'permissions.insert'的id,那麼我必須抓取meta數據文件的'文件'與請求字段'webContentLink'。這聽起來正確嗎?它的作品就是我所知道的哈哈。帶寬問題很糟糕,你知道這個限制嗎?我還會添加google雲選項。 :)編輯:啊谷歌雲存儲不是免費的嗎? – Noitidart

相關問題