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

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

Следующие поля заполняются только для файлов, расположенных на общем диске:

  • capabilities.canTrashChildren : может ли текущий пользователь удалять дочерние элементы этой папки. Это неверно, если элемент не является папкой.
  • capabilities.canDeleteChildren : может ли текущий пользователь удалять дочерние элементы этой папки. Это неверно, если элемент не является папкой.