Вы можете удалить файлы и папки Google Диска как из раздела «Мой диск», так и из общих дисков. Есть два варианта: удалить или отправить в корзину.
Вы можете перемещать файлы и папки в корзину, а затем восстанавливать их (в течение 30 дней с момента удаления). Удаление файлов и папок приводит к их безвозвратному удалению с Диска. Если вы перемещаете, восстанавливаете или безвозвратно удаляете сразу несколько файлов и папок, изменения могут проявиться не сразу.
В этом руководстве объясняется, как удалять файлы на Диске.
Используйте параметр fields
Если вы хотите указать поля, возвращаемые в ответе, вы можете задать системный параметр fields с помощью любого метода ресурса files . Если параметр fields опущен, сервер вернет набор полей по умолчанию, специфичный для данного метода. Например, метод list возвращает только поля kind , id , name , mimeType и resourceKey для каждого файла. Чтобы вернуть различные поля, см. раздел Возврат определённых полей .
Мусор
Чтобы удалить файлы с Диска, переместите их в корзину. Файлы в корзине автоматически удаляются через 30 дней. Вы можете восстановить файлы из корзины до истечения 30-дневного срока.
Только владелец файла может удалить файл, и другие пользователи не могут просматривать файлы в корзине владельца. При попытке удалить файл, которому вы не владеете, возникает ошибка insufficientFilePermissions . Подробнее см. в разделе «Разрешения» .
Чтобы подтвердить, что вы являетесь владельцем файла, вызовите метод get ресурса files с параметром пути fileId и параметром fields , установив логическое поле ownedByMe . Поле ownedByMe не заполняется для файлов на общих дисках, поскольку они принадлежат общему диску, а не отдельным пользователям. Подробнее о параметре fields см. в разделе Использование параметра fields .
Если вы не являетесь владельцем файла, но все равно хотите получить копию удаленного файла, выполните одно из следующих действий:
- Сделайте копию файла.
- Обратитесь к владельцу, чтобы он восстановил его из корзины.
Переместить файл в корзину
Чтобы переместить файл в корзину, используйте метод update ресурса files с параметром пути fileId и установите логическое поле trashed в true . Чтобы переместить файл общего диска, необходимо также установить логический параметр запроса supportsAllDrives в значение true . Подробнее см. в разделе Реализация поддержки общих дисков .
В случае успеха тело ответа содержит экземпляр ресурса files .
В следующем примере кода показано, как использовать fileId , чтобы отметить файл как удаленный:
Питон
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: был ли файл удалён в корзину, явно или из родительской папки, удалённой в корзину. Обратите внимание, что при использованииtrashedс методомupdateустанавливается статус файла, а методgetизвлекает его. -
explicitlyTrashed: был ли файл явно удален из родительской папки, в отличие от рекурсивного удаления.
Следующие поля заполняются только для файлов, расположенных на общем диске:
-
trashedTime: время удаления элемента в формате даты и времени RFC 3339. Если вы используете предыдущую версию Drive API v2, это поле называетсяtrashedDate. -
trashingUser: Если файл был явно удален, пользователь, который его удалил.
Восстановить файл из корзины
Чтобы восстановить файл из корзины, используйте метод update ресурса files с параметром пути fileId и установите логическое поле trashed в false . Чтобы восстановить файл из корзины общего диска, необходимо также установить логический параметр запроса supportsAllDrives в значение true . Подробнее см. в разделе Реализация поддержки общих дисков .
В случае успеха тело ответа содержит экземпляр ресурса files .
В следующем примере кода показано, как использовать fileId , чтобы отметить файл как неудалённый:
Питон
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 файла, который вы хотите восстановить.
Очистить мусор
Вы можете безвозвратно удалить все файлы Диска, которые пользователь переместил в корзину, с помощью метода emptyTrash ресурса files . Чтобы очистить корзину общего диска, необходимо также указать идентификатор общего диска в параметре запроса driveId .
В случае успеха тело ответа содержит пустой объект JSON.
В следующем примере кода показано, как использовать fileId для окончательного удаления всех файлов в корзине:
Питон
response = drive_service.files().emptyTrash().execute()
Node.js
const response = await drive_service.files.emptyTrash({
});
return response;
Удалить
Вы можете безвозвратно удалить файл с Диска, не перемещая его в корзину. После удаления файла все, с кем вы им поделились, потеряют к нему доступ. Если вы хотите, чтобы другие пользователи сохранили доступ к файлу, перед удалением передайте право собственности другому пользователю.
Чтобы удалить файл на общем диске, пользователь должен иметь role=organizer в родительской папке. При удалении папки удаляются также все дочерние папки, принадлежащие этому пользователю. Подробнее см. в разделе Разрешения .
Чтобы окончательно удалить файл пользователя, не перемещая его в корзину, используйте метод delete ресурса files . Чтобы удалить файл на общем диске, необходимо также установить логический параметр запроса supportsAllDrives в true . Подробнее см. в разделе Реализация поддержки общих дисков .
В случае успеха тело ответа содержит пустой объект JSON.
В следующем примере кода показано, как использовать fileId для удаления файла:
Питон
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 , которые указывают возможности, имеющиеся у пользователя в отношении этого файла.
Чтобы проверить возможности, вызовите метод get ресурса files с параметром пути fileId и используйте одно из следующих capabilities в параметре fields . Дополнительные сведения о параметре fields см. в разделе Использование параметра fields .
Для всех файлов заполняются следующие поля:
-
capabilities.canTrash: Может ли текущий пользователь переместить этот файл в корзину. -
capabilities.canUntrash: Может ли текущий пользователь восстановить этот файл из корзины. -
capabilities.canDelete: Может ли текущий пользователь удалить этот файл. -
capabilities.canRemoveChildren: Может ли текущий пользователь удалять дочерние элементы из этой папки. Значениеfalse, если элемент не является папкой.
Следующие поля заполняются только для файлов, расположенных на общем диске:
-
capabilities.canTrashChildren: Может ли текущий пользователь удалять дочерние элементы этой папки. Значениеfalse, если элемент не является папкой. -
capabilities.canDeleteChildren: Может ли текущий пользователь удалять дочерние элементы этой папки. Значениеfalse, если элемент не является папкой.
Ограничения на файлы и папки
Файлы и папки на Диске, а также папки на общих дисках имеют некоторые ограничения по объему хранения.
Как правило, после достижения лимита объектов единственный способ освободить место — это безвозвратное удаление объектов или использование другой учётной записи. Перемещение файлов в корзину не освобождает место.
Дополнительную информацию об ограничениях на файлы и папки см. в следующих разделах: