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