Выбросить или удалить файлы и папки

Вы можете удалить файлы и папки 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, если элемент не является папкой.

Ограничения на файлы и папки

Файлы и папки на Диске, а также папки на общих дисках имеют некоторые ограничения по объему хранения.

Как правило, после достижения лимита объектов единственный способ освободить место — это безвозвратное удаление объектов или использование другой учётной записи. Перемещение файлов в корзину не освобождает место.

Дополнительную информацию об ограничениях на файлы и папки см. в следующих разделах: