파일 및 폴더 휴지통으로 이동 또는 삭제하기

내 드라이브 및 공유 드라이브 모두에서 Google 드라이브 파일과 폴더를 삭제할 수 있습니다. 이 작업을 수행하는 방법에는 휴지통에 버리기와 삭제하기 두 가지가 있습니다.

파일과 폴더를 휴지통으로 이동한 후 30일 이내에 복원할 수 있습니다. 파일 및 폴더를 삭제하면 Drive에서 완전히 삭제됩니다. 한 번에 여러 파일 또는 폴더를 휴지통에 버리거나 복원하거나 완전히 삭제하는 경우 변경사항이 반영되는 데 시간이 걸릴 수 있습니다.

이 가이드에서는 Drive에서 파일을 폐기하는 방법을 설명합니다.

휴지통

Drive 파일을 삭제하려면 파일을 휴지통으로 이동하세요. 휴지통에 있는 파일은 30일 후 자동으로 삭제됩니다. 30일이 지나기 전에는 휴지통에서 파일을 복원할 수 있습니다.

파일 소유자만 파일을 휴지통으로 이동할 수 있으며 다른 사용자는 소유자의 휴지통에 있는 파일을 볼 수 없습니다. 소유하지 않은 파일을 휴지통에 버리려고 하면 insufficientFilePermissions 오류가 발생합니다. 자세한 내용은 권한을 참고하세요.

파일 소유자임을 확인하려면 fileIdfields 매개변수를 불리언 ownedByMe 필드로 설정하여 files.get 메서드를 호출합니다. 공유 드라이브의 파일은 개인 사용자가 아닌 공유 드라이브에서 소유하므로 ownedByMe 필드가 채워지지 않습니다. fields 매개변수를 사용하여 필드를 반환하는 방법에 관한 자세한 내용은 파일의 특정 필드 반환을 참고하세요.

파일 소유자가 아니지만 휴지통에 있는 파일의 사본을 원하는 경우 다음 중 하나를 수행합니다.

  • 파일의 사본을 만듭니다.
  • 소유자에게 연락하여 휴지통에서 복구해 달라고 요청합니다.

휴지통으로 파일 이동하기

파일을 휴지통으로 이동하려면 files.update 메서드를 사용하고 trashed 필드를 True로 설정합니다. 공유 드라이브 파일을 휴지통으로 보내려면 supportsAllDrives 쿼리 매개변수도 True로 설정해야 합니다. 자세한 내용은 공유 드라이브 지원 구현을 참고하세요.

성공하면 응답 본문파일 리소스의 인스턴스가 포함됩니다.

다음 코드 샘플은 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로 바꿉니다.

휴지통에 있는 파일의 속성 확인

파일이 휴지통에 있으면 추가 files 속성을 검색할 수 있습니다. files.get 메서드를 사용하고 다음 필드를 fields 매개변수에 포함할 수 있습니다. 자세한 내용은 파일의 특정 필드 반환을 참고하세요.

다음 필드는 모든 파일에 채워집니다.

  • trashed: 파일이 명시적으로 또는 휴지통으로 이동한 상위 폴더에서 휴지통으로 이동되었는지 여부입니다. files.update 메서드와 함께 trashed를 사용하면 파일의 상태가 설정되지만 files.get 메서드는 파일의 상태를 검색합니다.
  • explicitlyTrashed: 파일이 상위 폴더에서 반복적으로 휴지통으로 이동되지 않고 명시적으로 휴지통으로 이동되었는지 여부입니다.

다음 필드는 공유 드라이브 내에 있는 파일에 대해서만 채워집니다.

  • trashedTime: 항목이 휴지통에 추가된 시간으로 RFC 3339 날짜-시간 형식입니다. 이전 Drive API v2 버전을 사용하는 경우 이 필드는 trashedDate라고 합니다.
  • trashingUser: 파일이 명시적으로 휴지통에 추가된 경우 휴지통에 추가한 사용자입니다.

휴지통에서 파일 복구하기

휴지통에서 파일을 복구하려면 files.update 메서드를 사용하고 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로 바꿉니다.

휴지통 비우기

files.emptyTrash 메서드를 사용하여 사용자가 휴지통으로 이동한 모든 Drive 파일을 영구적으로 삭제할 수 있습니다. 공유 드라이브의 휴지통을 비우려면 driveId 쿼리 매개변수도 공유 드라이브 ID로 설정해야 합니다.

성공하면 응답 본문에 빈 인스턴스가 포함됩니다.

다음 코드 샘플은 fileId를 사용하여 휴지통의 모든 파일을 삭제하는 방법을 보여줍니다.

Python

response = drive_service.files().emptyTrash().execute()

Node.js

 const response = await drive_service.files.emptyTrash({
    });
    return response;

삭제

Drive 파일을 휴지통으로 이동하지 않고도 영구적으로 삭제할 수 있습니다. 파일을 삭제하면 파일을 공유한 모든 사용자가 파일에 액세스할 수 없게 됩니다. 다른 사용자가 파일에 계속 액세스할 수 있도록 하려면 삭제하기 전에 다른 사용자에게 소유권을 이전하면 됩니다.

공유 드라이브 파일을 삭제하려면 사용자가 상위 폴더에 role=organizer 권한이 있어야 합니다. 폴더를 삭제하면 사용자가 소유한 모든 하위 항목도 삭제됩니다. 자세한 내용은 권한을 참고하세요.

사용자 소유 파일을 휴지통으로 이동하지 않고 영구적으로 삭제하려면 files.delete 메서드를 사용하세요. 공유 Drive 파일을 삭제하려면 supportsAllDrives 쿼리 매개변수도 True로 설정해야 합니다. 자세한 내용은 공유 드라이브 지원 구현을 참고하세요.

성공하면 응답 본문에 빈 인스턴스가 포함됩니다.

다음 코드 샘플은 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 필드 모음이 포함되어 있습니다.

기능을 확인하려면 fileIdfields 매개변수를 capabilities 필드로 설정하고 files.get 메서드를 호출합니다. fields 매개변수를 사용하여 필드를 반환하는 방법에 관한 자세한 내용은 파일의 특정 필드 반환을 참고하세요.

모든 파일에 대해 다음 필드가 채워집니다.

  • capabilities.canTrash: 현재 사용자가 이 파일을 휴지통으로 이동할 수 있는지 여부입니다.
  • capabilities.canUntrash: 현재 사용자가 휴지통에서 이 파일을 복원할 수 있는지 여부입니다.
  • capabilities.canDelete: 현재 사용자가 이 파일을 삭제할 수 있는지 여부입니다.
  • capabilities.canRemoveChildren: 현재 사용자가 이 폴더에서 하위 요소를 삭제할 수 있는지 여부입니다. 항목이 폴더가 아닌 경우 false입니다.

다음 필드는 공유 드라이브 내에 있는 파일에 대해서만 채워집니다.

  • capabilities.canTrashChildren: 현재 사용자가 이 폴더의 하위 항목을 휴지통으로 이동할 수 있는지 여부입니다. 항목이 폴더가 아닌 경우 false입니다.
  • capabilities.canDeleteChildren: 현재 사용자가 이 폴더의 하위 요소를 삭제할 수 있는지 여부입니다. 항목이 폴더가 아닌 경우 false입니다.

파일 및 폴더 한도

Drive 파일 및 폴더와 공유 드라이브 폴더에는 저장용량 한도가 있습니다.

일반적으로 항목 한도에 도달한 후에는 항목을 영구 삭제하거나 다른 계정을 사용하는 것만이 여유 공간을 확보할 수 있는 유일한 방법입니다. 파일을 휴지통으로 이동해도 공간이 확보되지 않습니다.

파일 및 폴더 한도에 관한 자세한 내용은 다음을 참고하세요.