将文件和文件夹移到回收站或将其删除

您可以从“我的云端硬盘”和共享云端硬盘中移除 Google 云端硬盘文件和文件夹。您可以通过以下两种方式执行此操作:移至回收站或删除。

您可以将文件和文件夹移至回收站,然后在 30 天内将其还原。删除文件和文件夹会将其从云端硬盘中永久移除。如果您同时将多个文件或文件夹移至回收站、还原或永久删除,那么相应更改可能要过一段时间才会生效。

本指南介绍了如何在云端硬盘中处置文件。

使用 fields 参数

如果您想指定要在响应中返回的字段,可以使用 fields system parameter 使用 files 资源的任何方法。如果您省略 fields 参数,服务器会返回特定于该方法的默认字段集。例如, list 方法仅返回每个文件的 kindidnamemimeTyperesourceKey 字段。如需返回不同的 字段,请参阅返回特定字段

回收站

如需移除云端硬盘文件,您可以将其移至回收站。回收站中的文件会在 30 天后被自动删除。您可以在 30 天内从回收站中还原文件。

只有文件所有者可以将文件移至回收站,其他用户无法查看所有者回收站中的文件。如果您尝试将不属于您的文件移至回收站,则会收到 insufficientFilePermissions 错误。如需了解详情,请参阅权限

如需验证您是否是文件所有者,请使用 fileId 路径参数和 fields 参数(设置为布尔值 ownedByMe 字段)对 files 资源调用 get 方法。对于共享云端硬盘中的文件,系统不会填充 ownedByMe 字段,因为这些文件归共享云端硬盘(而非个人用户)所有。如需详细了解 fields 参数, 请参阅 使用 fields 参数

如果您不是文件所有者,但仍想要已移至回收站的文件的副本,请执行以下操作之一:

  • 复制文件。
  • 联系所有者,让其从回收站中还原文件。

将文件移至回收站

如需将文件移至回收站,请使用 fileId 路径参数对 files 资源调用 update 方法,并将布尔值 trashed 字段设置为 true。如需将共享云端硬盘文件移至回收站,您还必须将布尔值 supportsAllDrives 查询参数设置为 true。如需了解详情,请参阅实现共享云端硬盘 支持

如果成功,响应 正文将包含一个 files资源实例。

以下代码示例展示了如何使用 fileId 将文件标记为已移至回收站:

Python

body_value = {'trashed': True}

response = drive_service.files().update(fileId="FILE_ID", body=body_value).execute()

Node.js

const body_value = {
  'trashed': true
};

const response = await drive_service.files.update({
      fileId: 'FILE_ID',
      requestBody: body_value,
    });
    return response;

FILE_ID 替换为您要移至回收站的文件的 fileId

确定已移至回收站的文件的属性

文件移至回收站后,您可以检索其他文件属性。您可以使用 get方法对files资源调用fileId路径参数,并在fields参数中使用以下已移至回收站的字段之一。如需详细了解 fields 参数,请参阅使用 fields 参数

系统会为所有文件填充以下字段:

  • trashed:文件是否已移至回收站(无论是明确移至回收站,还是从已移至回收站的父文件夹中移至回收站)。请注意,虽然将 trashedupdate 方法搭配使用会设置文件的状态,但 get 方法会检索文件的状态。
  • explicitlyTrashed:文件是否已明确移至回收站(而不是从父文件夹中以递归方式移至回收站)。

系统仅会为共享云端硬盘中的文件填充以下字段:

  • trashedTime:项移至回收站的时间,采用 RFC 3339 日期时间格式。如果您使用的是旧版 Drive API v2,则此字段称为 trashedDate
  • trashingUser:如果文件是明确移至回收站的,则为将其移至回收站的用户。

从回收站中还原文件

如需从回收站中还原文件,请使用 update方法对files资源调用,并使用fileId路径参数将 布尔值trashed字段设置为 false。如需取消将共享云端硬盘文件移至回收站,您还必须将布尔值 supportsAllDrives查询 参数设置为true。如需了解详情,请参阅实现共享云端硬盘 支持

如果成功,响应 正文将包含一个 files资源实例。

以下代码示例展示了如何使用 fileId 将文件标记为已取消移至回收站:

Python

body_value = {'trashed': False}

response = drive_service.files().update(fileId="FILE_ID", body=body_value).execute()

Node.js

const body_value = {
  'trashed': false
};

const response = await drive_service.files.update({
      fileId: 'FILE_ID',
      requestBody: body_value,
    });
    return response;

FILE_ID 替换为您要 取消移至回收站的文件的 fileId

清空回收站

您可以使用 files 资源中的 emptyTrash 方法永久删除用户已移至 回收站的所有云端硬盘文件。如需清空共享云端硬盘的回收站,您 还必须将 driveId 查询参数设置为共享云端硬盘 ID。

如果成功,响应 正文将包含一个空的 JSON 对象。

以下代码示例展示了如何使用 fileId 永久删除回收站中的所有文件:

Python

response = drive_service.files().emptyTrash().execute()

Node.js

 const response = await drive_service.files.emptyTrash({
    });
    return response;

删除

您可以永久删除云端硬盘文件,而无需将其移至回收站。删除某文件后,该文件的任何共享对象都会失去访问权限。如果您希望其他人保留对文件的访问权限,可以在删除之前将所有权转让给其他人。

如需删除共享云端硬盘文件,用户必须对父文件夹拥有 role=organizer 权限。如果您要删除文件夹,则用户拥有的所有后代也会被删除。如需了解详情,请参阅权限

如需永久删除用户拥有的文件,而无需将其移至回收站,请对 files 资源使用 delete 方法。如需删除共享云端硬盘文件,您还必须 将布尔值 supportsAllDrives 查询 参数设置为 true。如需了解详情,请参阅实现共享云端硬盘 支持

如果成功,响应 正文将包含一个空的 JSON 对象。

以下代码示例展示了如何使用 fileId 删除文件:

Python

response = drive_service.files().delete(fileId="FILE_ID").execute()

Node.js

 const response = await drive_service.files.delete({
      fileId: 'FILE_ID'
    });
    return response;

FILE_ID 替换为您要 删除的文件的 fileId

权限

下表显示了将文件和文件夹移至回收站或删除所需的角色权限。如需查看角色及其允许的操作的完整列表, 请参阅角色和权限

允许的操作 owner organizer fileOrganizer writer commenter reader
将文件和文件夹移至回收站
从回收站中还原文件和文件夹
清空回收站
删除文件或文件夹
删除共享云端硬盘中的文件和文件夹 [*]
删除空的共享云端硬盘

功能

A files 资源包含一系列布尔值 capabilities 字段,这些字段指示用户对此文件拥有的功能。

如需检查功能,请使用 fileId 路径参数对 files 资源调用 get 方法 ,并在 fields 参数中使用以下 capabilities 字段之一。如需详细了解 fields 参数,请参阅使用 fields 参数

系统会为所有文件填充以下字段:

系统仅会为共享云端硬盘中的文件填充以下字段:

文件和文件夹限制

云端硬盘文件和文件夹以及共享云端硬盘文件夹都有一些存储空间限制。

一般来说,达到项数限制后,创建更多空间的唯一方法是 通过永久删除项或使用 其他帐号。将文件移至回收站不足以释放空间。

如需详细了解文件和文件夹限制,请参阅以下内容: