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