Z tego przewodnika dowiesz się, jak Google Drive API obsługuje kilka sposobów wyszukiwania plików i folderów.
Możesz użyć metody list w zasobie files, aby zwrócić wszystkie lub niektóre pliki i foldery użytkownika Dysku. Metoda list może też służyć do pobierania parametru fileId wymaganego w przypadku niektórych metod zasobów (np. metody get i metody update).
Używanie parametru fields
Jeśli chcesz określić pola, które mają być zwracane w odpowiedzi, możesz ustawić fields parametr systemfields w dowolnej metodzie zasobu files. Jeśli pominiesz parametr fields, serwer zwróci domyślny zestaw pól specyficznych 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, zobacz 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ą metody list.
Metoda zwraca plik jako instancję zasobu files. Jeśli podasz parametr zapytania alt=media, odpowiedź będzie zawierać treść pliku w treści odpowiedzi. Aby pobrać lub wyeksportować plik, przeczytaj artykuł Pobieranie i eksportowanie plików.
Aby potwierdzić ryzyko pobrania znanego złośliwego oprogramowania lub innych szkodliwych plików, ustaw parametr zapytania acknowledgeAbuse 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 parametrów.
GET https://www.googleapis.com/drive/v3/files
wyszukiwanie konkretnych plików lub folderów na Moim dysku bieżącego użytkownika,
Aby wyszukać określony zestaw plików lub folderów, użyj ciągu zapytania q field
z metodą list, aby odfiltrować pliki do zwrócenia przez połączenie co najmniej jednego wyszukiwanego terminu.
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, w którym ma się odbywać wyszukiwanie.operatorokreśla warunek dla terminu zapytania.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 terminy zapytań dotyczące plików, zobacz Terminy zapytań dotyczące plików.
Aby wyświetlić wszystkie operatory zapytań, których możesz użyć do utworzenia zapytania, zobacz Operatory zapytań.
Przykłady ciągów zapytania
W tabeli poniżej znajdziesz przykłady podstawowych ciągów zapytania. Rzeczywisty kod zależy od biblioteki klienta używanej do wyszukiwania.
Musisz też użyć znaków zmiany znaczenia w nazwach plików, aby zapytanie działało prawidłowo. Jeśli np. nazwa pliku zawiera zarówno apostrof ('), jak i ukośnik lewy ("\"), poprzedź je ukośnikiem lewym: name
contains 'quinn\'s paper\\essay'.
| Co chcesz wyszukać | Przykład |
|---|---|
| Pliki o nazwie „hello” | name = 'hello' |
| Pliki, których nazwa zawiera słowa „hello” i „goodbye” | name contains 'hello' and name contains 'goodbye' |
| Pliki, których nazwa nie zawiera słowa „hello” | not name contains 'hello' |
| Pliki zawierające tekst „ważne” i znajdujące się w koszu | fullText contains 'important' and trashed = true |
| Pliki zawierające słowo „hello” | fullText contains 'hello' |
| Pliki, które nie zawierają słowa „hello” | not fullText contains 'hello' |
| Pliki zawierające dokładnie wyrażenie „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 obrazów lub filmów 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 „grupa@example.org” mają uprawnienia do zapisu | 'group@example.org' in writers |
| Pliki udostępnione autoryzowanemu użytkownikowi, które mają w nazwie słowo „hello”. | sharedWithMe and name contains 'hello' |
| Pliki z niestandardową właściwością pliku widoczną dla wszystkich aplikacji | properties has { key='mass' and value='1.3kg' } |
| Pliki z niestandardową właściwością pliku prywatną dla aplikacji wysyłającej żądanie | appProperties has { key='additionalID' and value='8e8aceg2af2ge72e78' } |
| Pliki, które nie zostały udostępnione żadnym osobom ani domenom (tylko prywatne lub udostępnione określonym użytkownikom lub grupom). | visibility = 'limited' |
Filtrowanie wyników wyszukiwania za pomocą biblioteki klienta
Poniższy 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. W tym przykładzie używamy terminu mimeType, aby zawęzić wyniki do plików typu image/jpeg. Ustawia też wartość spaces na drive, aby jeszcze bardziej zawęzić wyszukiwanie do przestrzeni na Dysku. Gdy nextPageToken zwróci null, nie będzie więcej wyników.
Java
Python
Node.js
PHP
Wyszukiwanie plików z niestandardową właściwością pliku
Aby wyszukać pliki z niestandardową właściwością pliku, użyj terminu wyszukiwania 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 i ma nazwę additionalID, a jej wartość to 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 terminu wyszukiwania 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 wartości określonych 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.
Wyszukiwanie w korpusach
Domyślnie kolekcja elementów user jest ustawiona w parametrze zapytania corpora, gdy używana jest metoda list. Aby wyszukać inne kolekcje elementów, np. te udostępnione domain, musisz jawnie ustawić parametr corpora.
W jednym zapytaniu możesz przeszukiwać 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 jest to true, oznacza to, że niektóre dokumenty zostały pominięte. Aby rozwiązać ten problem, zawęź zakres corpora, aby używać tylko 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 zbiorach elementów możesz użyć funkcji modifiedTime, ponieważ jest ona zoptymalizowana pod kątem obsługi takich zapytań.
Na przykład: ?orderBy=modifiedTime.
Jeśli pominiesz parametr zapytania orderBy, nie będzie domyślnej kolejności sortowania, a elementy będą zwracane w sposób losowy.
Powiązane artykuły
- Wyszukiwanie dysków współdzielonych
- Zapytania i operatory wyszukiwania
- 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