Interfejs Google Drive API obsługuje kilka rodzajów działań związanych z pobieraniem i eksportowaniem, które są wymienione w tabeli poniżej:
| Działania związane z pobieraniem |
|
||||
| Działania związane z eksportowaniem |
|
Zanim pobierzesz lub wyeksportujesz treść pliku, sprawdź, czy użytkownicy mogą pobrać plik za pomocą pola capabilities.canDownload w zasobie files.
Opisy wymienionych tutaj typów plików, w tym plików blob i Google Workspace, znajdziesz w artykule Typy plików.
W pozostałej części tego dokumentu znajdziesz szczegółowe instrukcje dotyczące wykonywania tych rodzajów działań związanych z pobieraniem i eksportowaniem.
Pobieranie treści pliku blob
Aby pobrać plik blob przechowywany na Dysku, użyj metody files.get z identyfikatorem pliku do pobrania i parametrem
alt systemowym.
Parametr alt=media informuje serwer, że żądane jest pobranie treści jako alternatywny format odpowiedzi.
Parametr systemowy alt jest dostępny we wszystkich interfejsach Google REST API. Jeśli używasz biblioteki klienta interfejsu Drive API, nie musisz jawnie ustawiać tego parametru, ponieważ metoda biblioteki klienta dodaje parametr alt=media do podstawowego żądania HTTP.
Poniższe przykłady kodu pokazują, jak używać metody files.get do pobierania pliku:
Apps Script
/**
* Downloads a file from Drive.
* @param {string} fileId The ID of the file to download.
* @return {Blob} The file content as a Blob.
*/
function downloadFile(fileId) {
var url = 'https://www.googleapis.com/drive/v3/files/' + fileId + '?alt=media';
var response = UrlFetchApp.fetch(url, {
headers: {
'Authorization': 'Bearer ' + ScriptApp.getOAuthToken()
}
});
return response.getBlob();
}
Java
Python
Node.js
PHP
.NET
curl
curl -L "https://www.googleapis.com/drive/v3/files/FILE_ID?alt=media" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--output "FILE_NAME"
Zastąp następujące elementy:
- FILE_ID: identyfikator pliku do pobrania.
- ACCESS_TOKEN: token dostępu, który przyznaje dostęp do interfejsu API.
- FILE_NAME: nazwa pliku wyjściowego.
Pobieranie plików rozpoczęte w aplikacji musi być autoryzowane za pomocą zakresu, który umożliwia odczyt treści pliku. Na przykład aplikacja korzystająca z zakresu drive.readonly.metadata nie jest uprawniona do pobierania treści pliku.
Przykłady kodu biblioteki klienta używają ograniczonego zakresu plików drive, który umożliwia użytkownikom wyświetlanie wszystkich plików na Dysku i zarządzanie nimi. Więcej informacji
o zakresach Dysku znajdziesz w artykule Wybieranie zakresów interfejsu Google Drive API.
Użytkownicy z uprawnieniami owner (w przypadku plików na Moim dysku) lub
organizer (w przypadku plików na dysku współdzielonym) mogą ograniczyć pobieranie
za pomocą
DownloadRestrictionsMetadata
obiektu. Więcej informacji znajdziesz w artykule Uniemożliwianie użytkownikom pobierania, drukowania i
kopiowania pliku.
Pliki uznane za naruszające zasady
(np. szkodliwe oprogramowanie) mogą być pobierane tylko przez właściciela pliku.
Dodatkowo parametr zapytania acknowledgeAbuse musi być ustawiony na true, aby wskazać, że użytkownik zdaje sobie sprawę z ryzyka pobrania potencjalnie niechcianego oprogramowania lub innych plików naruszających zasady. Przed użyciem tego parametru zapytania aplikacja powinna interaktywnie ostrzec użytkownika.
Pobieranie częściowe
Pobieranie częściowe polega na pobieraniu tylko określonej części pliku. Część pliku, którą chcesz pobrać, możesz określić za pomocą zakresu
bajtów w nagłówku
Range. Na przykład:
Range: bytes=500-999
Pobieranie treści pliku blob w starszej wersji
Aby pobrać treść plików blob w starszej wersji, użyj metody
revisions.get z identyfikatorem
pliku do pobrania, identyfikatorem wersji i alt parametrem
systemowym.
Parametr alt=media informuje serwer, że żądane jest pobranie treści jako alternatywny format odpowiedzi. Podobnie jak w przypadku metody files.get, metoda revisions.get akceptuje też parametr zapytania acknowledgeAbuse i nagłówek Range.
Możesz pobrać tylko te wersje treści plików blob, które są oznaczone jako „Zachowaj na zawsze”. Jeśli chcesz pobrać wersję, najpierw ustaw ją na „Zachowaj na zawsze”. Więcej informacji znajdziesz w artykule Określanie wersji, które mają być zapisywane przed automatycznym usunięciem.
Więcej informacji o pobieraniu wersji znajdziesz w artykule Zarządzanie operacjami długotrwałymi.
curl
curl -L "https://www.googleapis.com/drive/v3/files/FILE_ID/revisions/REVISION_ID?alt=media" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--output "FILE_NAME"
Zastąp następujące elementy:
- FILE_ID: identyfikator pliku do pobrania.
- REVISION_ID: identyfikator wersji do pobrania.
- ACCESS_TOKEN: token dostępu, który przyznaje dostęp do interfejsu API.
- FILE_NAME: nazwa pliku wyjściowego.
Pobieranie treści pliku blob w przeglądarce
Aby pobrać treść plików blob przechowywanych na Dysku w
przeglądarce, a nie za pomocą interfejsu API, użyj pola webContentLink zasobu files. Jeśli użytkownik ma dostęp do pobierania pliku, zwracany jest link do pobrania pliku i jego zawartości. Możesz przekierować użytkownika na ten adres URL lub udostępnić go jako link, który można kliknąć.
curl
curl "https://www.googleapis.com/drive/v3/files/FILE_ID?fields=webContentLink" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--header "Accept: application/json"
Zastąp następujące elementy:
- FILE_ID: identyfikator pliku, dla którego chcesz uzyskać link do pobrania.
- ACCESS_TOKEN: token dostępu, który przyznaje dostęp do interfejsu API.
Pobieranie treści pliku blob za pomocą operacji długotrwałych
Aby pobrać treść plików blob za pomocą operacji długotrwałych (LRO), użyj
metody files.download z identyfikatorem
pliku do pobrania. Opcjonalnie możesz ustawić identyfikator wersji.
Jest to jedyny sposób na pobranie plików Google Vids. Jeśli spróbujesz wyeksportować
pliki Google Vids, otrzymasz
fileNotExportable błąd.
Więcej informacji znajdziesz w artykule Zarządzanie operacjami długotrwałymi.
curl
Poniższe polecenie curl inicjuje LRO i zwraca odpowiedź w formacie JSON. Aby pobrać plik lub sprawdzić stan tej LRO, musisz wysłać kolejne żądanie z użyciem zwróconego identyfikatora, aby uzyskać adres URL treści. Następnie możesz wysłać ostatnie żądanie curl na ten adres URL, aby pobrać plik. Więcej informacji znajdziesz w artykule Zarządzanie operacjami długotrwałymi.
curl --request POST "https://www.googleapis.com/drive/v3/files/FILE_ID/download?mimeType=video/mp4" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--header "Content-Length: 0" \
--header "Accept: application/json"
Zastąp następujące elementy:
- FILE_ID: identyfikator pliku do pobrania.
- ACCESS_TOKEN: token dostępu, który przyznaje dostęp do interfejsu API.
Eksportowanie treści dokumentu Google Workspace
Aby wyeksportować treść dokumentu Google Workspace w postaci bajtów, użyj metody files.export z identyfikatorem pliku do wyeksportowania i
prawidłowym typem MIME. Wyeksportowana treść może mieć maksymalnie 10 MB.
Poniższe przykłady kodu pokazują, jak używać metody files.export do eksportowania dokumentu Google Workspace w formacie PDF:
Apps Script
/**
* Exports a Google Workspace document.
* @param {string} fileId The ID of the file to export.
* @param {string} mimeType The MIME type to export to.
* @return {Blob} The exported content as a Blob.
*/
function exportPdf(fileId, mimeType) {
var url = 'https://www.googleapis.com/drive/v3/files/' + fileId + '/export?mimeType=' + encodeURIComponent(mimeType);
var response = UrlFetchApp.fetch(url, {
headers: {
'Authorization': 'Bearer ' + ScriptApp.getOAuthToken()
}
});
return response.getBlob();
}
Java
Python
Node.js
PHP
.NET
curl
curl -L "https://www.googleapis.com/drive/v3/files/FILE_ID/export?mimeType=application/pdf" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--output "FILE_NAME.pdf"
Zastąp następujące elementy:
- FILE_ID: identyfikator pliku do pobrania.
- ACCESS_TOKEN: token dostępu, który przyznaje dostęp do interfejsu API.
- FILE_NAME: nazwa pliku wyjściowego.
Przykłady kodu biblioteki klienta używają ograniczonego zakresu drive, który umożliwia użytkownikom wyświetlanie wszystkich plików na Dysku i zarządzanie nimi. Więcej informacji
o zakresach Dysku znajdziesz w artykule Wybieranie zakresów interfejsu Google Drive API.
Przykłady kodu deklarują też typ MIME eksportu jako application/pdf. Pełną listę wszystkich typów MIME eksportu obsługiwanych w przypadku każdego dokumentu Google Workspace znajdziesz w artykule Typy MIME eksportu w przypadku dokumentów Google Workspace.
Eksportowanie treści dokumentu Google Workspace w przeglądarce
Aby wyeksportować treść dokumentu Google Workspace w przeglądarce, użyj pola
exportLinks zasobu
files. W zależności od typu dokumentu zwracany jest link do pobrania pliku i jego zawartości dla każdego dostępnego typu MIME. Możesz przekierować użytkownika na adres URL lub udostępnić go jako link, który można kliknąć.
curl
curl "https://www.googleapis.com/drive/v3/files/FILE_ID?fields=id,name,exportLinks" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--header "Accept: application/json"
Zastąp następujące elementy:
- FILE_ID: identyfikator pliku, dla którego chcesz uzyskać link do pobrania.
- ACCESS_TOKEN: token dostępu, który przyznaje dostęp do interfejsu API.
Eksportowanie treści dokumentu Google Workspace w starszej wersji w przeglądarce
Aby wyeksportować treść dokumentu Google Workspace w starszej wersji w
przeglądarce, użyj metody revisions.get z
identyfikatorem pliku do pobrania i identyfikatorem wersji, aby wygenerować link do eksportu,
z którego możesz pobrać plik. Jeśli użytkownik ma dostęp do pobierania pliku, zwracany jest link do pobrania pliku i jego zawartości. Możesz przekierować użytkownika na ten adres URL lub udostępnić go jako link, który można kliknąć.
curl
curl "https://www.googleapis.com/drive/v3/files/FILE_ID/revisions/REVISION_ID?fields=id,name,exportLinks" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--header "Accept: application/json"
Zastąp następujące elementy:
- FILE_ID: identyfikator pliku do pobrania.
- REVISION_ID: identyfikator wersji do pobrania.
- ACCESS_TOKEN: token dostępu, który przyznaje dostęp do interfejsu API.
Eksportowanie treści dokumentu Google Workspace za pomocą operacji długotrwałych
Aby wyeksportować treść dokumentu Google Workspace za pomocą operacji długotrwałych
(LRO), użyj metody files.download z
identyfikatorem pliku do pobrania i identyfikatorem wersji. Więcej informacji znajdziesz w artykule Zarządzanie operacjami długotrwałymi.
curl
Poniższe polecenie curl inicjuje LRO i zwraca odpowiedź w formacie JSON. Aby pobrać plik lub sprawdzić stan tej LRO, musisz wysłać kolejne żądanie z użyciem zwróconego identyfikatora, aby uzyskać adres URL treści. Następnie możesz wysłać ostatnie żądanie curl na ten adres URL, aby pobrać plik. Więcej informacji znajdziesz w artykule Zarządzanie operacjami długotrwałymi.
curl --request POST "https://www.googleapis.com/drive/v3/files/FILE_ID/download?mimeType=MIME_TYPE&revisionId=REVISION_ID" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--header "Content-Length: 0" \
--header "Accept: application/json"
Zastąp następujące elementy:
- FILE_ID: identyfikator pliku do pobrania.
- MIME_TYPE: typ MIME, do którego chcesz wyeksportować plik.
- REVISION_ID: identyfikator wersji do pobrania.
- ACCESS_TOKEN: token dostępu, który przyznaje dostęp do interfejsu API.