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

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

Ограничения на количество файлов и папок

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

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

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