【问题标题】:Transferring Specific Files/Folders over with Google Admin SDK API使用 Google Admin SDK API 传输特定文件/文件夹
【发布时间】:2020-01-22 00:11:20
【问题描述】:

Google API Admin SDK 数据传输:可以找到here

我已经能够成功地将所有文件从 1 个 Google 帐户复制到另一个帐户,但我希望仅复制 1 个特定文件。范围和权限是正确的。

移动所有文件成功的API请求体是:

{
  "oldOwnerUserId": "{ID transferring from}",
  "newOwnerUserId": "{ID Transferring to}",
  "applicationDataTransfers": [    
    {
      "applicationId": "{Google Drive Application ID}"
    }
  ]
}

我要复制的 Google Drive 文件夹的 ID 是 1HCrNywrvoUly_MrYndR。如何调整此代码以仅通过此 Google Drive 文件夹传输?

或者,有没有一种方法可以通过 Google API 在其他用户的帐户中创建默认文件夹?我需要为每个创建帐户的新用户创建一组空白文件夹,并且无法找到使用 Google Drive API 在其他帐户中创建文件夹的方法。此解决方法是在我的 Google Drive 中创建所有文件夹,然后使用 Admin SDK API 将完成的文件夹发送给新用户。

【问题讨论】:

  • 您是要复制特定文件夹还是云端硬盘?您发布的 ID 采用云端硬盘形式,而不是文件/文件夹。
  • 我正在尝试复制特定的 Google Drive 文件夹(我没有输入实际的文件夹 ID)

标签: google-admin-sdk


【解决方案1】:

在四处挖掘之后,我发现了一个比使用 Google 服务帐户简单得多的解决方案。您只需要管理员凭据。

如果您通过 API 在您自己的 Google Drive 中创建一个文件夹,您可以加载任何您想要的内容。之后,您可以更改父文件夹的权限以使目标用户成为所有者。然后,您删除自己的权限,瞧,该文件现在属于其他人。

【讨论】:

    【解决方案2】:

    答案:

    Admin SDK API 没有允许您将单个文件或文件夹从一个用户帐户的云端硬盘复制到另一个的方法。为此,您必须使用 Google Drive API。

    更多信息:

    您需要使用服务帐户来执行此操作,因为要将应用程序授权为多个用户,您必须使用具有域范围委派的帐户运行应用程序,但是一旦在您的 Google Cloud 项目控制台,您可以使用常规的 Google Drive API 方法将单个文件或文件夹从一个 Drive 复制到另一个。

    注意事项:

    • 您需要使用 Drive API 的 deleteadd 方法来创建文件/文件夹,而不是复制它们。
    • 如果您希望复制文件夹中的文件,则需要递归地将这些文件复制到新创建的文件夹中。
    • 您可以使用 API 中 Drive: fileslist 方法获取文件夹中的文件列表。

    参考资料:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多