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

내 드라이브와 공유 드라이브 모두에서 Google Drive 파일과 폴더를 삭제할 수 있습니다. 두 가지 옵션(휴지통 또는 삭제)이 있습니다.

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

이 가이드에서는 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: 파일을 명시적으로 또는 휴지통으로 이동한 상위 폴더에서 휴지통으로 이동했는지 여부. 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 메서드를 사용합니다. 공유 드라이브 파일을 삭제하려면 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입니다.