Z tego przewodnika dowiesz się, jak Google Drive API obsługuje kilka sposobów wyszukiwania plików i folderów.
Aby zwrócić wszystkie lub niektóre pliki i foldery użytkownika Dysku, możesz użyć metody list w zasobie
files. Metody list można też używać do
pobierania parametru fileId wymaganego w przypadku niektórych metod zasobów (np. metody
get i update).
Używanie parametru fields
Jeśli chcesz określić pola, które mają być zwracane w odpowiedzi, możesz ustawić
fields parametr
systemowy
w dowolnej metodzie zasobu files. Jeśli pominiesz parametr fields, serwer zwróci domyślny zestaw pól właściwy dla danej metody. Na przykład metoda
list zwraca tylko pola kind, id,
name, mimeType i resourceKey dla każdego pliku. Aby zwrócić inne
pola, przeczytaj artykuł Zwracanie określonych pól.
Pobieranie pliku
Aby pobrać plik, użyj metody get w zasobie
files z parametrem ścieżki fileId.
Jeśli nie znasz identyfikatora pliku, możesz wyświetlić listę wszystkich plików za pomocą list
metody.
Metoda zwraca plik jako instancję zasobu files. Jeśli podasz parametr alt=media, odpowiedź będzie zawierać treść pliku w treści odpowiedzi. Aby pobrać plik blob, przeczytaj artykuł Pobieranie treści pliku blob.
Aby potwierdzić ryzyko pobrania znanego złośliwego oprogramowania lub innych
szkodliwych plików, ustaw
acknowledgeAbuse parametr zapytania na true. To pole ma zastosowanie tylko wtedy, gdy ustawiony jest parametr alt=media, a użytkownik jest właścicielem pliku lub organizatorem dysku współdzielonego, na którym znajduje się plik.
Wyszukiwanie wszystkich plików i folderów na Moim dysku bieżącego użytkownika
Aby zwrócić wszystkie pliki i foldery, użyj metody list bez żadnych parametrów.
GET https://www.googleapis.com/drive/v3/files
Wyszukiwanie określonych plików lub folderów na Moim dysku bieżącego użytkownika
Aby wyszukać określony zestaw plików lub folderów, użyj pola ciągu zapytania q field
z metodą list, aby filtrować pliki do
zwrócenia przez połączenie co najmniej 1 wyszukiwanego hasła.
Składnia ciągu zapytania składa się z tych 3 części:
query_term operator values
Gdzie:
query_termto wyszukiwane hasło lub pole.operatorokreśla warunek wyszukiwanego hasła.valuesto konkretne wartości, których chcesz użyć do filtrowania wyników wyszukiwania.
Na przykład ten ciąg zapytania filtruje wyszukiwanie, aby zwracać tylko foldery, ustawiając typ MIME:
q: mimeType = 'application/vnd.google-apps.folder'
Aby wyświetlić wszystkie wyszukiwane hasła dotyczące plików, przeczytaj artykuł Wyszukiwane hasła dotyczące plików.
Aby wyświetlić wszystkie operatory zapytań, których możesz użyć do utworzenia zapytania, przeczytaj artykuł Operatory zapytań.
Przykłady ciągów zapytania
W tabeli poniżej znajdziesz przykłady podstawowych ciągów zapytania. Rzeczywisty kod różni się w zależności od biblioteki klienta używanej do wyszukiwania.
Aby zapytanie działało prawidłowo, musisz też poprzedzić znakiem ucieczki znaki specjalne w nazwach plików. Jeśli np. nazwa pliku zawiera zarówno apostrof
('), jak i ukośnik lewy ("\"), użyj ukośnika lewego, aby je poprzedzić znakiem ucieczki: name
contains 'quinn\'s paper\\essay'.
| Co chcesz wyszukać | Przykład |
|---|---|
| Pliki o nazwie „hello” | name = 'hello' |
| Pliki o nazwie zawierającej słowa „hello” i „goodbye” | name contains 'hello' and name contains 'goodbye' |
| Pliki o nazwie, która nie zawiera słowa „hello” | not name contains 'hello' |
| Pliki, które zawierają tekst „important” i znajdują się w koszu | fullText contains 'important' and trashed = true |
| Pliki, które zawierają słowo „hello” | fullText contains 'hello' |
| Pliki, które nie zawierają słowa „hello” | not fullText contains 'hello' |
| Pliki, które zawierają dokładną frazę „hello world” | fullText contains '"hello world"' |
| Pliki z zapytaniem zawierającym znak „\” (np. „\authors”) | fullText contains '\\authors' |
| Pliki, które są folderami | mimeType = 'application/vnd.google-apps.folder' |
| Pliki, które nie są folderami | mimeType != 'application/vnd.google-apps.folder' |
| Pliki zmodyfikowane po określonej dacie (domyślna strefa czasowa to UTC) | modifiedTime > '2012-06-04T12:00:00' |
| Pliki graficzne lub wideo zmodyfikowane po określonej dacie | modifiedTime > '2012-06-04T12:00:00' and (mimeType contains 'image/' or mimeType contains 'video/') |
| Pliki oznaczone gwiazdką | starred = true |
Pliki w kolekcji (np. identyfikator folderu w kolekcji parents) |
'1234567' in parents |
| Pliki w folderze danych aplikacji w kolekcji | 'appDataFolder' in parents |
| Pliki, których właścicielem jest użytkownik „test@example.org” | 'test@example.org' in owners |
| Pliki, do których użytkownik „test@example.org” ma uprawnienia do zapisu | 'test@example.org' in writers |
| Pliki, do których członkowie grupy „group@example.org” mają uprawnienia do zapisu | 'group@example.org' in writers |
| Pliki udostępnione autoryzowanemu użytkownikowi, które w nazwie zawierają słowo „hello” | sharedWithMe and name contains 'hello' |
| Pliki z niestandardową właściwością widoczną dla wszystkich aplikacji | properties has { key='mass' and value='1.3kg' } |
| Pliki z niestandardową właściwością prywatną dla aplikacji wysyłającej żądanie | appProperties has { key='additionalID' and value='8e8aceg2af2ge72e78' } |
| Pliki, które nie zostały udostępnione nikomu ani żadnej domenie (tylko prywatne lub udostępnione konkretnym użytkownikom lub grupom) | visibility = 'limited' |
Filtrowanie wyników wyszukiwania za pomocą biblioteki klienta
Ten przykładowy kod pokazuje, jak używać biblioteki klienta do filtrowania wyników wyszukiwania według nazw plików i identyfikatorów plików JPEG. Ten przykład używa wyszukiwanego hasła mimeType, aby zawęzić wyniki do plików typu image/jpeg. Ustawia też
spaces na drive, aby dodatkowo zawęzić wyszukiwanie do miejsca na Dysku
Dysku. Gdy nextPageToken zwraca null, nie ma więcej wyników.
Java
Python
Node.js
PHP
Wyszukiwanie plików z niestandardową właściwością
Aby wyszukać pliki z niestandardową właściwością, użyj wyszukiwanego hasła properties lub appProperties z kluczem i wartością. Aby na przykład wyszukać niestandardową właściwość pliku, która jest prywatna dla aplikacji wysyłającej żądanie, o nazwie additionalID i wartości 8e8aceg2af2ge72e78:
appProperties has { key='additionalID' and value='8e8aceg2af2ge72e78' }
Więcej informacji znajdziesz w artykule Dodawanie niestandardowych właściwości pliku.
Wyszukiwanie plików z określoną etykietą lub wartością pola
Aby wyszukać pliki z określonymi etykietami, użyj wyszukiwanego hasła labels z konkretnym identyfikatorem etykiety. Na przykład: 'labels/LABEL_ID' in
labels. Jeśli operacja się uda, treść odpowiedzi będzie zawierała wszystkie instancje plików, do których zastosowano etykietę.
Aby wyszukać pliki bez określonego identyfikatora etykiety: Not
'labels/LABEL_ID' in labels.
Możesz też wyszukiwać pliki na podstawie konkretnych wartości pól. Aby na przykład wyszukać pliki z wartością tekstową:
labels/LABEL_ID.text_field_id ='TEXT'.
Więcej informacji znajdziesz w artykule Wyszukiwanie plików z określoną etykietą lub wartością pola.
Przeszukiwanie korpusów
Domyślnie, gdy używana jest metoda list, w parametrze zapytania corpora
ustawiana jest kolekcja elementów user. Aby przeszukać inne kolekcje elementów, np. udostępnione w domain, musisz wyraźnie ustawić parametr corpora.
W jednym zapytaniu możesz przeszukać wiele korpusów, ale jeśli połączone korpusy są zbyt duże, interfejs API może zwrócić niepełne wyniki. Sprawdź pole
incompleteSearch
w treści odpowiedzi. Jeśli ma wartość true, oznacza to, że pominięto niektóre dokumenty. Aby rozwiązać ten problem, zawęź parametr corpora, aby używać user lub drive.
Gdy używasz parametru zapytania
orderBy w metodzie list, unikaj używania klucza createdTime w przypadku zapytań dotyczących
dużych kolekcji elementów, ponieważ wymaga to dodatkowego przetwarzania i może powodować
przekroczenie limitu czasu lub inne problemy. W przypadku sortowania według czasu w dużych kolekcjach elementów możesz użyć zamiast tego parametru modifiedTime, ponieważ jest on zoptymalizowany pod kątem obsługi tych zapytań.
Na przykład ?orderBy=modifiedTime.
Jeśli pominiesz parametr zapytania orderBy, nie będzie domyślnego porządku sortowania, a elementy będą zwracane w dowolnej kolejności.
Powiązane artykuły
- Wyszukiwanie dysków współdzielonych
- Wyszukiwane hasła i operatory
- Obsługiwane typy MIME w Google Workspace i na Dysku Google
- Role i uprawnienia
- Wyszukiwanie plików z określoną etykietą lub wartością pola