【问题标题】:Deleting permission in google drive api删除谷歌驱动器api中的权限
【发布时间】:2019-06-27 02:45:30
【问题描述】:

我想通过删除与我共享的文件的权限来删除文件。 但是由于权限不足,我无法删除它。如何删除?

到目前为止我做了什么:

获取文件的元数据及其permissionId

{
 "kind": "drive#file",

 "id": "1pPGyU9XvliI4U8910uehkuQ-vuuRXEVD",

 "name": "Die Hard (1988) 1080p BDRip Org DD 5.1 [Hindi + English] x264 ESubs.mkv",

 "mimeType": "video/x-matroska",

 "starred": false,

 "trashed": false,

 "explicitlyTrashed": false,

 "spaces": [
  "drive"
 ],

 "version": "135",

 "webContentLink": "https://drive.google.com/uc?id=1pPGyU9XvliI4U8910uehkuQ-vuuRXEVD&export=download",

 "webViewLink": "https://drive.google.com/file/d/1pPGyU9XvliI4U8910uehkuQ-vuuRXEVD/view?usp=drivesdk",

 "iconLink": "https://drive-thirdparty.googleusercontent.com/16/type/video/x-matroska",

 "hasThumbnail": true,

 "thumbnailLink": "https://lh3.googleusercontent.com/iVzSamm0mJK92lc16EW4TsFy8GZhcbKwUIzIwaGPtT9p2HV9bQl5SogR_nzb1zcihi5BZQ3qey0=s220",

 "thumbnailVersion": "1",

 "viewedByMe": true,

 "viewedByMeTime": "2019-06-26T17:00:11.924Z",

 "createdTime": "2018-05-16T09:54:34.010Z",

 "modifiedTime": "2018-05-16T10:24:01.186Z",

 "modifiedByMe": false,

 "sharedWithMeTime": "2018-10-21T17:22:57.170Z",

 "owners": [
  {
   "kind": "drive#user",

   "displayName": "free ac",

   "me": false,

     "permissionId": "00202688946253680238",

   "emailAddress": "freeac331@gmail.com"
  }
 ],

 "lastModifyingUser": {

  "kind": "drive#user",

  "displayName": "free ac",

  "me": false,

  "permissionId": "00202688946253680238",

  "emailAddress": "freeac331@gmail.com"

 },
 "shared": true,

 "ownedByMe": false,

 "capabilities": {

  "canAddChildren": false,

  "canChangeCopyRequiresWriterPermission": false,

  "canChangeViewersCanCopyContent": false,

  "canComment": false,

  "canCopy": true,

  "canDelete": false,

  "canDownload": true,

  "canEdit": false,

  "canListChildren": false,

  "canMoveItemIntoTeamDrive": false,

  "canMoveItemOutOfDrive": false,

  "canReadRevisions": false,

  "canRemoveChildren": false,

  "canRename": false,

  "canShare": false,

  "canTrash": false,

  "canUntrash": false
 },
 "viewersCanCopyContent": true,

 "copyRequiresWriterPermission": false,

 "writersCanShare": true,

 "originalFilename": "Die Hard (1988) 1080p BDRip Org DD 5.1 [Hindi + English] x264 ESubs.mkv",

 "fullFileExtension": "mkv",

 "fileExtension": "mkv",

 "md5Checksum": "7fdc6768744557159d790037c808c99c",

 "size": "2565619212",
 "quotaBytesUsed": "0",

 "headRevisionId": "0B8kwukeDiZGLUHpUN0xXTllYRnRBbFZYMzNsbjFUK01jZ2tVPQ",

 "videoMediaMetadata": {
  "width": 1920,
  "height": 800,
  "durationMillis": "7929080"
 },
 "isAppAuthorized": false
}

我试图删除权限

fileId:1pPGyU9XvliI4U8910uehkuQ-vuuRXEVD

permissionId:00202688946253680238

{
"error": {
  "errors": [
   {
    "domain": "global",
    "reason": "insufficientFilePermissions",
    "message": "The user does not have sufficient permissions for this file."
   }
  ],
  "code": 403,
  "message": "The user does not have sufficient permissions for this file."
 }
}

但无法删除与我共享的文件。

编辑 1:

我正在使用 this 进行测试

编辑 2:

我正在尝试this,但使用的是 google drive api

【问题讨论】:

  • @DaImTo 我尝试按照您的建议删除权限,但它没有被删除
  • 你能提供你当前的脚本来复制你的问题吗?
  • @Tanaike 我目前正在使用此站点进行测试developers.google.com/drive/api/v3/reference/permissions/…
  • 感谢您的回复。你不使用脚本。您可以使用“试用此 API”对其进行测试。我的理解正确吗?
  • @Tanaike 是的。稍后将它与 python 一起使用

标签: google-drive-api


【解决方案1】:

您收到insufficientFilePermissions 错误,因为只有文件的所有者才能编辑它们。如您所见:

"ownedByMe": false,

目前无法通过 API 从共享文件中删除文件,因此可以选择要求所有者停止与您共享文件或通过云端硬盘 GUI 将其删除。

编辑:

可以按照以下步骤完成:

  1. Drive.list获取文件的ID
  2. 使用permissions.list的fileID获取permissionID
  3. 您将获得两个具有两个 PermissionID 的项目,从具有“共享对象”电子邮件的项目中复制一个,而不是 所有者 电子邮件。
  4. 使用文件ID 和permissions.delete 删除权限和 第 3 步中的 PermissionID。

【讨论】:

  • 嗨@Evonb,我更正了我的答案。很抱歉给您带来不便。
猜你喜欢
  • 2019-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-15
  • 1970-01-01
  • 1970-01-01
  • 2020-04-28
  • 1970-01-01
相关资源
最近更新 更多