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

내 드라이브 및 공유 드라이브 모두에서 Google 드라이브 파일과 폴더를 삭제할 수 있습니다. 데이터를 삭제하는 방법에는 휴지통 또는 삭제의 두 가지 옵션이 있습니다

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

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

휴지통

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

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

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

파일 소유자는 아니지만 휴지통에 버린 파일의 사본이 필요한 경우 다음 중 하나를 수행합니다.

  • 파일 사본을 만듭니다.
  • 소유자에게 휴지통에서 복원하도록 요청하세요.

휴지통으로 파일 이동하기

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

휴지통으로 이동한 파일의 속성 확인

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

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

  • trashed: 파일이 명시적으로 또는 휴지통으로 이동한 상위 폴더에서 휴지통으로 이동되었는지 여부입니다. trashedfiles.update 메서드와 함께 사용하면 파일 상태를 설정하지만 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 메서드를 사용합니다. 공유 드라이브 파일을 삭제하려면 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 파일 및 폴더와 공유 드라이브 폴더에는 저장용량 한도가 있습니다.

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

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