我有一个应用程序在我的应用程序的用户可以上传/下载文件,我不想让他们授权他们要上传的文件每次。 所以,我才知道,服务帐户是解决它,这正是我一直在寻找。 我跟着这个页面给出的说明:
https://developers.google.com/drive/service-accounts
它所有的工作很好,但问题是限制,即只有5GB,是不是有什么办法,我可以买一些产生额外的存储为我的服务帐户(需要提及的是它不能这样做,但我仍然只是想确认)。 我不希望使用该网络服务器流量,在那里我保存的凭证即访问令牌和在每次到期时刷新令牌。 有没有解决我的问题?
一种解决方案将文件存储在自己的谷歌驱动器帐户而不是服务帐户的谷歌驱动器是授予所有者权限您的服务帐户在你的谷歌开发者控制台。
然后你的个人谷歌驱动器中创建一个文件夹,并得到该文件夹的ID。
当您使用服务上传文件占据确保把该文件夹作为父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( 'youraccount@gmail.com' );
$drive_service->permissions->insert( $requestss->getId(), $permission );
现在,你就可以将文件上传到自己的谷歌驱动的,而不是服务帐户驱动器
希望这可以帮助
看一眼:
https://developers.google.com/drive/service-accounts
服务帐户不能购买额外的存储空间,所以你需要使用常规的谷歌帐户,而不是。
分享你的普通帐户的文件夹到您的服务帐户。
您的服务帐户的编辑部地址看起来像XXX@XXX.iam.gserviceaccount.com。
那么你的服务帐户可以看到您的正常帐户的共享文件夹。
现在,您的服务帐户得到您的正常帐户的额外存储空间。