您可以从“我的云端硬盘”和共享云端硬盘中移除 Google 云端硬盘文件和文件夹。您可以通过以下两种方式执行此操作:移至回收站或删除。
您可以将文件和文件夹移至回收站,然后再将其恢复(在移至回收站后的 30 天内)。删除文件和文件夹会将其从云端硬盘中永久移除。如果您同时将多个文件或文件夹移至回收站、恢复或永久删除,则可能要一段时间才能看到更改生效。
本指南介绍了如何处理云端硬盘中的文件。
回收站
如要移除云端硬盘文件,请将其移至回收站。回收站中的文件会在 30 天后自动删除。在 30 天期限之前,您可以从回收站恢复文件。
只有文件所有者可以将文件移至回收站,其他用户无法查看所有者回收站中的文件。如果您尝试将不归您所有的文件移至回收站,则会收到 insufficientFilePermissions
错误。如需了解详情,请参阅权限。
如需验证您是否为文件所有者,请调用 files.get
方法,并将 fileId
和 fields
参数设置为布尔值 ownedByMe
字段。对于共享云端硬盘中的文件,系统不会填充 ownedByMe
字段,因为这些文件属于共享云端硬盘,而非个人用户。如需详细了解如何使用 fields
参数返回字段,请参阅返回文件的特定字段。
如果您不是文件所有者,但仍想获得回收站中文件的副本,请执行以下任一操作:
- 创建文件的副本。
- 请与所有者联系,让对方从回收站中恢复文件。
将文件移至回收站
如需将文件移至回收站,请使用 files.update
方法并将 trashed
字段设置为 True
。如需将共享云端硬盘文件移至回收站,您还必须将 supportsAllDrives
查询参数设置为 True
。如需了解详情,请参阅实现共享云端硬盘支持。
以下代码示例展示了如何使用 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
。
确定回收站中文件的属性
当文件被移至回收站时,您可以检索其他 files
属性。您可以使用 files.get
方法,并在 fields
参数中添加以下字段。如需了解详情,请参阅返回文件的特定字段。
系统会为所有文件填充以下字段:
trashed
:文件是否已被移至回收站(无论是显式移至,还是从已移至回收站的父文件夹移至)。请注意,将trashed
与files.update
方法搭配使用可设置文件的状态,而files.get
方法可检索文件的状态。explicitlyTrashed
:文件是否明确从父文件夹中移入回收站,而不是递归删除。
系统只会为位于共享云端硬盘的文件填充以下字段:
trashedTime
:内容被移至回收站的时间,采用 RFC 3339 日期时间格式。如果您使用的是旧版 Drive API v2,此字段称为trashedDate
。trashingUser
:如果文件已明确移至回收站,则是将其移至回收站的用户。
还原回收站中的文件
如需从回收站中恢复文件,请使用 files.update
方法并将 trashed
字段设置为 False
。如需恢复共享云端硬盘文件,您还必须将 supportsAllDrives
查询参数设置为 True
。如需了解详情,请参阅实现共享云端硬盘支持。
以下代码示例展示了如何使用 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。
如果成功,响应正文将包含一个空实例。
以下代码示例展示了如何使用 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
。如需了解详情,请参阅实现共享云端硬盘支持。
如果成功,响应正文将包含一个空实例。
以下代码示例展示了如何使用 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 |
---|---|---|---|---|---|---|
将文件和文件夹移至回收站 | ✔ | ✔ | ✔ | |||
从回收站中恢复文件和文件夹 | ✔ | ✔ | ✔ | |||
清空回收站 | ✔ | ✔ | ||||
永久删除文件或文件夹 | ✔ | ✔ | ||||
在共享云端硬盘中删除文件和文件夹 [*] | ✔ |
功能
files
资源包含一组布尔值 capabilities
字段,用于指示是否可以对文件执行操作。
如需检查功能,请调用 files.get
方法,并将 fileId
和 fields
参数设置为 capabilities
字段。如需详细了解如何使用 fields
参数返回字段,请参阅返回文件的特定字段。
系统会为所有文件填充以下字段:
capabilities.canTrash
:当前用户能否将此文件移至回收站。capabilities.canUntrash
:当前用户是否可以从回收站恢复此文件。capabilities.canDelete
:当前用户是否可以删除此文件。capabilities.canRemoveChildren
:当前用户是否可以从此文件夹中移除子项。如果内容不是文件夹,则此属性为 false。
以下字段仅会针对位于共享云端硬盘中的文件填充:
capabilities.canTrashChildren
:当前用户是否可以将此文件夹的子文件夹移至回收站。如果内容不是文件夹,则此字段为 false。capabilities.canDeleteChildren
:当前用户是否可以删除此文件夹的子文件夹。如果内容不是文件夹,则此属性为 false。
文件和文件夹限制
云端硬盘文件和文件夹以及共享云端硬盘文件夹存在一些存储空间限制。
一般来说,在达到内容数上限后,腾出更多空间的唯一方法是永久删除内容或使用其他账号。将文件移至回收站并不足以释放空间。
如需详细了解文件和文件夹限制,请参阅以下内容: