Вы можете удалить файлы и папки 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
, если элемент не является папкой.
Ограничения на файлы и папки
Файлы и папки на Диске, а также папки на общих дисках имеют некоторые ограничения по объему хранения.
Как правило, после достижения лимита объектов единственный способ освободить место — это безвозвратное удаление объектов или использование другой учётной записи. Перемещение файлов в корзину не освобождает место.
Дополнительную информацию об ограничениях на файлы и папки см. в следующих разделах: