【问题标题】:How do I share a file to a specific folder using Google Drive API?如何使用 Google Drive API 将文件共享到特定文件夹?
【发布时间】:2021-04-26 23:34:42
【问题描述】:

我执行了下面的代码,并尝试使用“父母”将文件共享到特定文件夹,但没有成功。我到处寻找解决方案,但找不到任何解决方案。

function grantPermission($role, $user, $atividade){
    $userPermission = new Google_Service_Drive_Permission(array(
        'type' => 'user',
        'role' => $role,
        'emailAddress' => $user->email,
        'parents' => array($user->folder_id_minhas_atividades),
    ));

    $request = $this->drive->permissions->create($atividade->folder_id, $userPermission, array('fields' => 'id'));
    
    $ret = redirect()->route('verAtividade.verPessoas', ['atividade_id' => $atividade->id]);
    return $ret;
}

【问题讨论】:

  • 该文件总是与我共享,但我想要共享一个文件,这个文件必须转到用户文件夹($user->folder_id_minhas_atividades)。
  • 您是否要使用 API 将文件从“与我共享”移动到“我的云端硬盘”?
  • 您想将共享文件放入您的云端硬盘、其他用户的云端硬盘还是共享云端硬盘中的特定文件夹中?您要与其共享的用户是您域中的用户吗?
  • 到另一个用户Drive中的特定文件夹,假设我有folder_id的信息和用户@JM-AGMS的权限
  • 到另一个用户驱动器中的特定文件夹,假设我有folder_id的信息和用户@ziganotschka的权限

标签: php laravel google-drive-api drive


【解决方案1】:

如果您与用户共享文件,该文件将保留在您的云端硬盘中

用户只会将其视为“与我共享”,而不是在其云端硬盘上的文件夹中。

对于您想要实现的目标,您需要更新文件的父级,而不是更改权限。

如果您将文件移动到用户驱动器上的文件夹 - 用户将自动获得文件的访问权限。

使用Files: update方法并将文件夹id传递给参数addParents

示例:

$driveService = new \Google_Service_Drive($this->client);
$file = $driveService->files->update($fileId, $emptyFileMetadata, array(
    'addParents' => $folderId
));

根据具体情况,您可能还需要在请求正文中指定'removeParents' => $previousParents

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多