2013-01-21 154 views
1

我有一個應用程序,我的應用程序的用戶可以上傳/下載文件,我不希望他們每次他們想要上傳文件都需要授權。所以我才知道服務帳戶是解決方案,而這正是我所期待的。我跟着這個頁面的指示:Google雲端硬盤服務帳戶額外的存儲

https://developers.google.com/drive/service-accounts

它所有的工作很好,但問題是限制,即只有5GB,是不是有什麼辦法,我可以買一些產生額外的存儲爲我的服務帳戶(據說它不能完成,但我仍然想確認)。我不想使用網絡服務器流程,我保存憑證,即Access令牌,並在每次過期時刷新令牌。有沒有解決我的問題?

回答

0

看看:

https://developers.google.com/drive/service-accounts

服務帳戶不能購買額外的存儲空間,所以你需要使用常規的谷歌帳戶,而不是。

+0

但是對於普通賬戶,客戶端應該被授權上傳文件嗎?在那種情況下文件將被存儲在哪裏?在我的帳戶或用戶? –

1

將文件存儲在您自己的Google雲端硬盤帳戶中而不是谷歌驅動器的服務帳戶的解決方案是將所有者權限授予您的Google開發者控制檯中的服務帳戶。

然後在您的個人谷歌驅動器中創建一個文件夾,並獲取該文件夾的ID。

,當你使用的服務帳戶上傳文件,確保把該文件夾作爲文件父ID,您上傳這樣

$file = new Google_Service_Drive_DriveFile(); 
    $file->title = "Automata"; 
$parent = new Google_Service_Drive_ParentReference(); 
$parent->setId('Your Folder id'); 
$file->setParents(array($parent)); 
    $requestss = $drive_service->files->insert($file,array(
     'data' => $data, 
     'mimeType' => 'application/pdf', 
    )); 

$permission = new Google_Service_Drive_Permission(); 
$permission->setRole('writer'); 
$permission->setType('anyone'); 
$permission->setValue('[email protected]'); 
$drive_service->permissions->insert($requestss->getId(), $permission); 

的ID現在,你就可以將文件上傳到自己的谷歌驅動器而不是服務帳戶驅動

希望這有助於

0

分享您的正常帳戶的文件夾到您的服務帳戶。
您的服務帳戶地址看起來像[email protected]
然後您的服務帳戶可以從您的普通帳戶中看到共享文件夾。
現在您的服務帳戶可以獲得普通帳戶的額外存儲空間。

相關問題