Google云端硬盘服务帐户附加存储

时间:2013-01-21 07:33:20

标签: storage google-drive-api service-accounts

我有一个应用程序,我的应用程序的用户可以上传/下载文件,我不希望他们每次想要上传文件时进行授权。所以我开始知道服务帐户是它的解决方案,这正是我所寻求的。我按照本页中的说明进行操作:

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

这一切都很好,但问题是限制,即只有5GB,是不是我可以为我的服务帐户购买一些Additonal存储(有人提到它不能做,但我仍然只是想确认)。我不想使用Web服务器流,我保存凭证,即访问令牌,并在每次到期时刷新令牌。我的问题有解决办法吗?

3 个答案:

答案 0 :(得分:1)

将文件存储在您自己的Google云端硬盘帐户而非谷歌服务帐户中的解决方案是授予所有者对您的Google开发者控制台中的服务帐户的权限。

然后在您的个人google云端硬盘中创建一个文件夹,并获取该文件夹的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 ); 

现在,您可以将文件上传到自己的google驱动器而不是服务帐户驱动器

希望这有帮助

答案 1 :(得分:0)

看看:

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

服务帐户无法购买额外的存储空间,因此您需要使用常规的Google帐户。

答案 2 :(得分:0)

将普通帐户的文件夹分享到您的服务帐户 您的服务帐户地址如XXX@XXX.iam.gserviceaccount.com 然后,您的服务帐户可以查看普通帐户中的共享文件夹 现在,您的服务帐户将获得普通帐户的额外存储空间。