2

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

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

这一切都很好,但问题是限制,即只有 5GB,我没有办法为我的服务帐户购买一些附加存储(提到它无法完成,但我还是想确认一下)。我不想使用网络服务器流程,我在其中保存凭据,即访问令牌并在每次令牌过期时刷新令牌。我的问题有什么解决办法吗?

4

3 回答 3

0

将文件存储在您自己的 google 驱动器帐户而不是服务帐户的 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 驱动器而不是服务帐户驱动器

希望这可以帮助

于 2016-02-20T11:32:15.260 回答
0

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

于 2018-03-04T23:38:47.573 回答
-1

看一眼:

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

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

于 2013-01-21T13:02:33.433 回答