您可以将 Google 云端硬盘文件和文件夹从“我的”和 云端硬盘和共享云端硬盘。要执行此操作,您有两种选择:将邮件移至“已删除邮件” 或删除。
您可以将文件和文件夹移到回收站,然后还原它们(在 30 分钟内) 天)。删除文件和文件夹会将它们从以下位置永久移除 云端硬盘。如果您将多个文件移至回收站、还原或永久删除 文件或文件夹,您可能需要过一段时间才会注意到更改。
本指南介绍了如何处理云端硬盘中的文件。
回收站
如要移除云端硬盘文件,您可以将其移至回收站。中的文件 回收站也会在 30 天后自动删除您可以从以下位置恢复文件: 删除超过 30 天的数据。
只有文件所有者可以将文件移至回收站,且其他用户无法查看
其所有者的回收站。如果您尝试删除不归您所有的文件,则会收到
insufficientFilePermissions
错误。如需了解详情,请参阅权限。
要验证您是文件所有者,请调用
使用 fileId
的 files.get
方法
并将 fields
参数设为布尔值 ownedByMe
字段。ownedByMe
系统不会针对共享云端硬盘中的文件填充此字段,因为文件归
共享云端硬盘,而不是单个用户。有关退货的更多信息
字段使用 fields
参数,请参阅返回特定字段的特定字段
文件。
如果您不是文件所有者,但仍想保留回收站文件的副本,请执行以下操作: 以下项:
- 创建文件的副本。
- 请与所有者联系,让其从回收站中还原此内容。
将文件移至回收站
要将文件移至回收站,请使用
files.update
方法,并将
trashed
字段设置为 True
。如要将共享云端硬盘文件移至回收站,您还必须将
将 supportsAllDrives
查询参数设置为 True
。如需了解详情,请参阅
实现共享云端硬盘支持。
如果成功,响应将 body 包含一个 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
回收站。
确定移至回收站的文件的属性
将文件移至回收站后,您可以检索其他
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
。如需了解详情,请参阅
实现共享云端硬盘支持。
如果成功,响应将 body 包含一个 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。
如果成功,响应将 body包含一个空的 实例。
以下代码示例展示了如何使用 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
。有关详情,请参阅实现共享云端硬盘
支持。
如果成功,响应将 body 包含一个 空实例。
以下代码示例展示了如何使用 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
字段(用于指示是否可以执行某项操作)
对文件执行的操作
要检查功能,请调用
使用 fileId
的 files.get
方法
并将 fields
参数设为 capabilities
字段。如需进一步了解
有关如何使用 fields
参数返回字段的信息,请参阅返回
文件的特定字段。
系统会为所有文件填充以下字段:
capabilities.canTrash
:当前用户是否可以将此文件移动到 回收站。capabilities.canUntrash
:当前用户是否可以恢复此文件 回收站中的内容。capabilities.canDelete
:当前用户是否可以删除此文件。capabilities.canRemoveChildren
:当前用户是否可以移除 子文件夹。如果内容不是文件夹,则此字段为 false。
系统只会为位于共享云端硬盘的文件填充以下字段:
capabilities.canTrashChildren
:当前用户是否可以将子节点删除 此文件夹的名称如果内容不是文件夹,则此字段为 false。capabilities.canDeleteChildren
:当前用户是否可以删除 所有子文件夹。如果内容不是文件夹,则此字段为 false。
文件和文件夹限制
云端硬盘文件和文件夹以及共享云端硬盘文件夹 有一些存储空间限制。
一般来说,在达到内容上限后,腾出更多空间的唯一方式是 永久删除某些内容或使用 其他账号。将文件移至回收站并不足以释放空间。
如需详细了解文件和文件夹限制,请参阅以下内容: