Google Drive API는 파일과 폴더를 검색하는 여러 가지 방법을 지원합니다.
files.list
메서드를 사용하여 Drive 사용자의 파일 및 폴더 전체 또는 일부를 반환할 수 있습니다. files.list
메서드는 일부 리소스 메서드 (예: files.get
및 files.update
)에 필요한 fileId
를 검색하는 데 사용할 수도 있습니다.
현재 사용자의 내 드라이브에 있는 모든 파일 및 폴더 검색
모든 파일과 폴더를 반환하려면 매개변수 없이 files.list
메서드를 사용합니다.
GET https://www.googleapis.com/drive/v3/files
현재 사용자의 내 드라이브에 있는 특정 파일 또는 폴더 검색
특정 파일 또는 폴더 집합을 검색하려면 쿼리 문자열 q
필드를 files.list
메서드와 함께 사용하여 하나 이상의 검색어를 결합하여 반환할 파일을 필터링합니다.
쿼리 문자열은 다음 세 부분으로 구성됩니다.
query_term operator values
각 항목의 의미는 다음과 같습니다.
query_term
은 검색할 검색어 또는 필드입니다.operator
는 검색어의 조건을 지정합니다.values
는 검색 결과를 필터링하는 데 사용할 특정 값입니다.
필터 파일 및 폴더를 사용할 수 있는 쿼리 용어 및 연산자를 보려면 검색어 및 연산자를 참조하세요.
예를 들어 다음 쿼리 문자열은 MIME 유형을 설정하여 폴더만 반환하도록 검색을 필터링합니다.
q: mimeType = 'application/vnd.google-apps.folder'
MIME 유형에 관한 자세한 내용은 Google Workspace 및 Google Drive에서 지원되는 MIME 유형을 참고하세요.
쿼리 문자열의 예
다음 표에는 기본 쿼리 문자열의 예가 나와 있습니다. 실제 코드는 검색에 사용하는 클라이언트 라이브러리에 따라 다릅니다.
또한 파일 이름의 특수문자를 이스케이프 처리하여 쿼리가 올바르게 작동하는지 확인해야 합니다. 예를 들어 파일 이름에 아포스트로피('
)와 백슬래시("\"
) 문자가 모두 포함되어 있으면 백슬래시를 사용하여 이를 이스케이프 처리하세요(예: name
contains 'quinn\'s paper\\essay'
).
쿼리하려는 대상 | 예시 |
---|---|
이름이 'hello'인 파일 | name = 'hello' |
이름에 '안녕하세요'와 '안녕히 계세요'라는 단어가 포함된 파일 | name contains 'hello' and name contains 'goodbye' |
이름이 '안녕하세요'라는 단어가 포함되지 않은 파일 | not name contains 'hello' |
'중요'라는 텍스트가 포함되어 있고 휴지통에 있는 파일 | fullText contains 'important' and trashed = true |
'hello'라는 단어가 포함된 파일 | fullText contains 'hello' |
'안녕하세요'라는 단어가 없는 파일 | not fullText contains 'hello' |
'hello world'라는 문구가 정확히 포함된 파일 | fullText contains '"hello world"' |
"\" 문자가 포함된 쿼리가 있는 파일 (예: "\authors") | fullText contains '\\authors' |
폴더인 파일 | mimeType = 'application/vnd.google-apps.folder' |
폴더가 아닌 파일 | mimeType != 'application/vnd.google-apps.folder' |
지정된 날짜 이후에 수정된 파일 (기본 시간대는 UTC) | modifiedTime > '2012-06-04T12:00:00' |
특정 날짜 이후에 수정된 이미지 또는 동영상 파일 | modifiedTime > '2012-06-04T12:00:00' and (mimeType contains 'image/' or mimeType contains 'video/') |
별표표시된 파일 | starred = true |
컬렉션 내의 파일 (예: parents 컬렉션의 폴더 ID) |
'1234567' in parents |
컬렉션의 애플리케이션 데이터 폴더에 있는 파일 | 'appDataFolder' in parents |
사용자 'test@example.org'가 소유자인 파일 | 'test@example.org' in owners |
'test@example.org' 사용자에게 쓰기 권한이 있는 파일 | 'test@example.org' in writers |
'group@example.org' 그룹의 구성원이 쓰기 권한을 가진 파일 | 'group@example.org' in writers |
이름에 'hello'가 포함된 승인된 사용자와 공유된 파일 | sharedWithMe and name contains 'hello' |
모든 앱에 표시되는 맞춤 파일 속성이 있는 파일 | properties has { key='mass' and value='1.3kg' } |
요청하는 앱 전용의 맞춤 파일 속성이 있는 파일 | appProperties has { key='additionalID' and value='8e8aceg2af2ge72e78' } |
누구도 또는 도메인과 공유하지 않은 파일 (비공개 또는 특정 사용자/그룹과만 공유) | visibility = 'limited' |
클라이언트 라이브러리로 검색 결과 필터링
다음 코드 샘플은 클라이언트 라이브러리를 사용하여 검색 결과를 JPEG 파일의 파일 이름과 ID로 필터링하는 방법을 보여줍니다. 이 샘플에서는 mimeType
쿼리를 사용하여 결과 범위를 image/jpeg
유형의 파일로 좁힙니다. 또한 spaces
을 drive
로 설정하여 검색 범위를 드라이브 공간으로 더욱 좁힙니다. nextPageToken
가 null
를 반환하면 더 이상 결과가 없습니다.
Java
Python
Node.js
2,399필리핀
맞춤 파일 속성으로 파일 검색
커스텀 파일 속성이 있는 파일을 검색하려면 properties
또는 appProperties
검색어를 키 및 값과 함께 사용합니다. 예를 들어 값이 8e8aceg2af2ge72e78
인 additionalID
라는 요청하는 앱에만 포함된 맞춤 파일 속성을 검색하려면 다음을 실행합니다.
appProperties has { key='additionalID' and value='8e8aceg2af2ge72e78' }
자세한 내용은 커스텀 파일 속성 추가를 참고하세요.
특정 라벨 또는 필드 값이 있는 파일 검색
특정 라벨이 있는 파일을 검색하려면 labels
검색어를 특정 라벨 ID와 함께 사용합니다. 예를 들면 'labels/LABEL_ID' in
labels
입니다. 성공하면 응답 본문에 라벨이 적용된 모든 파일 인스턴스가 포함됩니다.
특정 라벨 ID가 없는 파일 검색: Not
'labels/LABEL_ID' in labels
특정 필드 값을 기준으로 파일을 검색할 수도 있습니다. 예를 들어 텍스트 값이 있는 파일을 검색하려면 labels/LABEL_ID.text_field_id ='TEXT'
를 사용하세요.
자세한 내용은 특정 라벨 또는 필드 값을 가진 파일 검색을 참조하세요.
코퍼스 검색
files.list
를 호출하는 검색은 기본적으로 user
의 corpora
를 사용합니다. domain
와 공유된 파일과 같은 다른 코퍼스를 검색하려면 corpora
매개변수를 설정합니다.
단일 쿼리에서 여러 코퍼스를 검색할 수 있지만 결합된 코퍼스가 너무 크면 불완전한 결과가 반환될 수 있습니다. 응답 본문에서 incompleteSearch
가 true
이면 모든 문서가 반환되지 않은 것입니다. 이 경우 user
또는 drive
와 같은 다른 코퍼스를 선택하여 쿼리 범위를 좁혀야 합니다.
관련 주제
- 공유 드라이브 검색하기
- 검색어 및 연산자
- Google Workspace 및 Google Drive에서 지원되는 MIME 유형
- 역할 및 권한
- 특정 라벨 또는 필드 값이 있는 파일 검색