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