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

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

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

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

fields 매개변수 사용

응답에서 반환할 필드를 지정하려면 fields system parameter 를 사용하여 files 리소스의 메서드를 설정하면 됩니다. fields 매개변수를 생략하면 서버는 메서드에 특정한 기본 필드 집합을 반환합니다. 예를 들어 list 메서드는 각 파일의 kind, id, name, mimeType, resourceKey 필드만 반환합니다. 다른 필드를 반환하려면 특정 필드 반환을 참고하세요.

휴지통

Drive 파일을 삭제하려면 파일을 휴지통으로 이동하세요. 휴지통에 있는 파일은 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 경로 매개변수와 함께 사용하고 fields 매개변수에서 다음 휴지통으로 이동된 필드 중 하나를 사용할 수 있습니다. fields 매개변수에 대한 자세한 내용은 fields 매개변수 사용을 참고하세요.

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

  • trashed: 파일이 명시적으로 또는 휴지통으로 이동된 상위 폴더에서 휴지통으로 이동되었는지 여부입니다. update 메서드와 함께 trashed를 사용하면 파일의 상태가 설정되지만 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로 바꿉니다.

휴지통 비우기

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

성공하면 응답 본문은 빈 JSON 객체입니다.

다음 코드 샘플은 fileId를 사용하여 휴지통에 있는 모든 파일을 영구적으로 삭제하는 방법을 보여줍니다.

Python

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

Node.js

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

삭제

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

공유 드라이브 파일을 삭제하려면 사용자에게 상위 폴더에 대한 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 경로 매개변수와 함께 호출하고 fields 매개변수에서 다음 capabilities 필드 중 하나를 사용합니다. fields 매개변수에 대한 자세한 내용은 fields 매개변수 사용을 참고하세요.

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

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

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

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

파일 및 폴더 한도

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

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

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