Dateien herunterladen und exportieren

Die Google Drive API unterstützt verschiedene Arten von Download- und Exportaktionen, die in der folgenden Tabelle aufgeführt sind:

Downloadaktionen
Blob-Dateiinhalte mit der Methode files.get und dem URL-Parameter alt=media.
Blob-Dateiinhalte in einer früheren Version mit der Methode revisions.get und dem URL-Parameter alt=media.
Blob-Dateiinhalte in einem Browser mit dem Feld webContentLink.
Blob-Dateiinhalte mit der Methode files.download und Vorgängen mit langer Laufzeit. Dies ist die einzige Möglichkeit, Google Vids-Dateien herunterzuladen.
Exportaktionen
Google Workspace-Dokumentinhalte in einem Format, das von Ihrer App verarbeitet werden kann, mit der Methode files.export.
Google Workspace-Dokumentinhalte in einem Browser mit dem Feld exportLinks.
Google Workspace-Dokumentinhalte in einer früheren Version in einem Browser mit dem Feld exportLinks.
Google Workspace-Dokumentinhalte mit der Methode files.download und Vorgängen mit langer Laufzeit.

Bevor Sie Dateiinhalte herunterladen oder exportieren, prüfen Sie, ob Nutzer die Datei mit dem capabilities.canDownload Feld in der files Ressource herunterladen können.

Beschreibungen der hier erwähnten Dateitypen, einschließlich Blob- und Google Workspace-Dateien, finden Sie unter Dateitypen.

Im Rest dieses Dokuments finden Sie eine detaillierte Anleitung zum Ausführen dieser Arten von Download- und Exportaktionen.

Blob-Dateiinhalte herunterladen

Wenn Sie eine in Drive gespeicherte Blob-Datei herunterladen möchten, verwenden Sie die files.get Methode mit der ID der herunterzuladenden Datei und dem alt=media URL-Parameter. Der URL-Parameter alt=media teilt dem Server mit, dass ein Download von Inhalten als alternatives Antwortformat angefordert wird.

Der alt=media URL-Parameter ist ein Systemparameter, der für alle Google REST APIs verfügbar ist. Wenn Sie eine Drive API-Clientbibliothek verwenden, müssen Sie diesen Parameter nicht explizit festlegen, da die Methode der Clientbibliothek den URL-Parameter alt=media zur zugrunde liegenden HTTP-Anfrage hinzufügt.

Die folgenden Codebeispiele zeigen, wie Sie die Methode files.get verwenden, um eine Datei herunterzuladen:

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

drive/snippets/drive_v3/src/main/java/DownloadFile.java
import com.google.api.client.googleapis.json.GoogleJsonResponseException;
import com.google.api.client.http.HttpRequestInitializer;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.gson.GsonFactory;
import com.google.api.services.drive.Drive;
import com.google.api.services.drive.DriveScopes;
import com.google.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Arrays;

/* Class to demonstrate use-case of drive's download file. */
public class DownloadFile {

  /**
   * Download a Document file in PDF format.
   *
   * @param realFileId file ID of any workspace document format file.
   * @return byte array stream if successful, {@code null} otherwise.
   * @throws IOException if service account credentials file not found.
   */
  public static ByteArrayOutputStream downloadFile(String realFileId) throws IOException {
        /* Load pre-authorized user credentials from the environment.
           TODO(developer) - See https://developers.google.com/identity for
          guides on implementing OAuth2 for your application.*/
    GoogleCredentials credentials = GoogleCredentials.getApplicationDefault()
        .createScoped(Arrays.asList(DriveScopes.DRIVE_FILE));
    HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter(
        credentials);

    // Build a new authorized API client service.
    Drive service = new Drive.Builder(new NetHttpTransport(),
        GsonFactory.getDefaultInstance(),
        requestInitializer)
        .setApplicationName("Drive samples")
        .build();

    try {
      OutputStream outputStream = new ByteArrayOutputStream();

      service.files().get(realFileId)
          .executeMediaAndDownloadTo(outputStream);

      return (ByteArrayOutputStream) outputStream;
    } catch (GoogleJsonResponseException e) {
      // TODO(developer) - handle error appropriately
      System.err.println("Unable to move file: " + e.getDetails());
      throw e;
    }
  }
}

Python

drive/snippets/drive-v3/file_snippet/download_file.py
import io

import google.auth
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError
from googleapiclient.http import MediaIoBaseDownload


def download_file(real_file_id):
  """Downloads a file
  Args:
      real_file_id: ID of the file to download
  Returns : IO object with location.

  Load pre-authorized user credentials from the environment.
  TODO(developer) - See https://developers.google.com/identity
  for guides on implementing OAuth2 for the application.
  """
  creds, _ = google.auth.default()

  try:
    # create drive api client
    service = build("drive", "v3", credentials=creds)

    file_id = real_file_id

    # pylint: disable=maybe-no-member
    request = service.files().get_media(fileId=file_id)
    file = io.BytesIO()
    downloader = MediaIoBaseDownload(file, request)
    done = False
    while done is False:
      status, done = downloader.next_chunk()
      print(f"Download {int(status.progress() * 100)}.")

  except HttpError as error:
    print(f"An error occurred: {error}")
    file = None

  return file.getvalue()


if __name__ == "__main__":
  download_file(real_file_id="1KuPmvGq8yoYgbfW74OENMCB5H0n_2Jm9")

Node.js

drive/snippets/drive_v3/file_snippets/download_file.js
import {GoogleAuth} from 'google-auth-library';
import {google} from 'googleapis';

/**
 * Downloads a file from Google Drive.
 * @param {string} fileId The ID of the file to download.
 * @return {Promise<number>} The status of the download.
 */
async function downloadFile(fileId) {
  // Authenticate with Google and get an authorized client.
  // TODO (developer): Use an appropriate auth mechanism for your app.
  const auth = new GoogleAuth({
    scopes: 'https://www.googleapis.com/auth/drive',
  });

  // Create a new Drive API client (v3).
  const service = google.drive({version: 'v3', auth});

  // Download the file.
  const file = await service.files.get({
    fileId,
    alt: 'media',
  });

  // Print the status of the download.
  console.log(file.status);
  return file.status;
}

PHP

drive/snippets/drive_v3/src/DriveDownloadFile.php
<?php
use Google\Client;
use Google\Service\Drive;
function downloadFile()
 {
    try {

      $client = new Client();
      $client->useApplicationDefaultCredentials();
      $client->addScope(Drive::DRIVE);
      $driveService = new Drive($client);
      $realFileId = readline("Enter File Id: ");
      $fileId = '0BwwA4oUTeiV1UVNwOHItT0xfa2M';
      $fileId = $realFileId;
      $response = $driveService->files->get($fileId, array(
          'alt' => 'media'));
      $content = $response->getBody()->getContents();
      return $content;

    } catch(Exception $e) {
      echo "Error Message: ".$e;
    }

}

.NET

drive/snippets/drive_v3/DriveV3Snippets/DownloadFile.cs
using Google.Apis.Auth.OAuth2;
using Google.Apis.Download;
using Google.Apis.Drive.v3;
using Google.Apis.Services;

namespace DriveV3Snippets
{
    // Class to demonstrate use-case of drive's download file.
    public class DownloadFile
    {
        /// <summary>
        /// Download a Document file in PDF format.
        /// </summary>
        /// <param name="fileId">file ID of any workspace document format file.</param>
        /// <returns>byte array stream if successful, null otherwise.</returns>
        public static MemoryStream DriveDownloadFile(string fileId)
        {
            try
            {
                /* Load pre-authorized user credentials from the environment.
                 TODO(developer) - See https://developers.google.com/identity for 
                 guides on implementing OAuth2 for your application. */
                GoogleCredential credential = GoogleCredential
                    .GetApplicationDefault()
                    .CreateScoped(DriveService.Scope.Drive);

                // Create Drive API service.
                var service = new DriveService(new BaseClientService.Initializer
                {
                    HttpClientInitializer = credential,
                    ApplicationName = "Drive API Snippets"
                });

                var request = service.Files.Get(fileId);
                var stream = new MemoryStream();

                // Add a handler which will be notified on progress changes.
                // It will notify on each chunk download and when the
                // download is completed or failed.
                request.MediaDownloader.ProgressChanged +=
                    progress =>
                    {
                        switch (progress.Status)
                        {
                            case DownloadStatus.Downloading:
                            {
                                Console.WriteLine(progress.BytesDownloaded);
                                break;
                            }
                            case DownloadStatus.Completed:
                            {
                                Console.WriteLine("Download complete.");
                                break;
                            }
                            case DownloadStatus.Failed:
                            {
                                Console.WriteLine("Download failed.");
                                break;
                            }
                        }
                    };
                request.Download(stream);

                return stream;
            }
            catch (Exception e)
            {
                // TODO(developer) - handle error appropriately
                if (e is AggregateException)
                {
                    Console.WriteLine("Credential Not found");
                }
                else
                {
                    throw;
                }
            }
            return null;
        }
    }
}

curl

curl -L "https://www.googleapis.com/drive/v3/files/FILE_ID?alt=media" \
  --header "Authorization: Bearer ACCESS_TOKEN" \
  --output "FILE_NAME"

Ersetzen Sie Folgendes:

  • FILE_ID: die ID der herunterzuladenden Datei.
  • ACCESS_TOKEN: das Zugriffstoken, das Zugriff auf die API gewährt.
  • FILE_NAME: der Name der Ausgabedatei.

Dateidownloads, die über Ihre App gestartet werden, müssen mit einem Bereich autorisiert werden, der Lesezugriff auf den Dateiinhalt ermöglicht. Eine App, die den Bereich drive.readonly.metadata verwendet, ist beispielsweise nicht autorisiert, die Dateiinhalte herunterzuladen. In den Codebeispielen der Clientbibliothek wird der eingeschränkte Dateibereich drive verwendet, mit dem Nutzer alle Ihre Drive-Dateien ansehen und verwalten können. Weitere Informationen zu Drive-Bereichen finden Sie unter Google Drive API-Bereiche auswählen.

Nutzer mit der Berechtigung owner (für Dateien in „Meine Ablage“) oder organizer (für Dateien in geteilten Ablagen) können Downloads einschränken über das DownloadRestrictionsMetadata Objekt. Weitere Informationen finden Sie unter Nutzer daran hindern, Ihre Datei herunterzuladen, zu drucken oder zu kopieren.

Dateien, die als missbräuchlich (z. B. schädliche Software) identifiziert wurden, können nur vom Eigentümer der Datei heruntergeladen werden. Außerdem muss der Abfrageparameter get acknowledgeAbuse=true enthalten sein, um anzugeben, dass der Nutzer das Risiko des Herunterladens potenziell unerwünschter Software oder anderer missbräuchlicher Dateien akzeptiert hat. Ihre Anwendung sollte den Nutzer interaktiv warnen, bevor dieser Abfrageparameter verwendet wird.

Teilweiser Download

Beim teilweisen Download wird nur ein bestimmter Teil einer Datei heruntergeladen. Sie können den Teil der Datei, den Sie herunterladen möchten, mit einem Byte bereich im Range Header angeben. Beispiel:

Range: bytes=500-999

Blob-Dateiinhalte in einer früheren Version herunterladen

Sie können nur Blob-Dateiinhaltsversionen herunterladen, die als „Niemals löschen“ gekennzeichnet sind. Wenn Sie eine Version herunterladen möchten, legen Sie sie zuerst auf „Niemals löschen“ fest. Weitere Informationen finden Sie unter Versionen angeben, die nicht automatisch gelöscht werden sollen.

Wenn Sie den Inhalt von Blob-Dateien in einer früheren Version herunterladen möchten, verwenden Sie die revisions.get Methode mit der ID der herunterzuladenden Datei, der ID der Version und dem alt=media URL-Parameter. Der URL-Parameter alt=media teilt dem Server mit, dass ein Download von Inhalten als alternatives Antwortformat angefordert wird. Ähnlich wie bei files.get akzeptiert die Methode revisions.get auch den optionalen Abfrageparameter acknowledgeAbuse und den Header Range. Weitere Informationen finden Sie unter Vorgänge mit langer Laufzeit verwalten.

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"

Ersetzen Sie Folgendes:

  • FILE_ID: die ID der herunterzuladenden Datei.
  • REVISION_ID: die ID der herunterzuladenden Version.
  • ACCESS_TOKEN: das Zugriffstoken, das Zugriff auf die API gewährt.
  • FILE_NAME: der Name der Ausgabedatei.

Blob-Dateiinhalte in einem Browser herunterladen

Wenn Sie den Inhalt von Blob-Dateien, die in Drive gespeichert sind, in einem Browser und nicht über die API herunterladen möchten, verwenden Sie das webContentLink Feld der files Ressource. Wenn der Nutzer Downloadzugriff auf die Datei hat, wird ein Link zum Herunterladen der Datei und ihrer Inhalte zurückgegeben. Sie können einen Nutzer entweder zu dieser URL weiterleiten oder sie als anklickbaren Link anbieten.

curl

curl "https://www.googleapis.com/drive/v3/files/FILE_ID?fields=webContentLink" \
  --header "Authorization: Bearer ACCESS_TOKEN" \
  --header "Accept: application/json"

Ersetzen Sie Folgendes:

  • FILE_ID: die ID der Datei, für die der Downloadlink abgerufen werden soll.
  • ACCESS_TOKEN: das Zugriffstoken, das Zugriff auf die API gewährt.

Blob-Dateiinhalte mit Vorgängen mit langer Laufzeit herunterladen

Wenn Sie den Inhalt von Blob-Dateien mit Vorgängen mit langer Laufzeit (Long-Running Operations, LRO) herunterladen möchten, verwenden Sie die files.download Methode mit der ID der herunterzuladenden Datei. Optional können Sie die ID der Version festlegen.

Dies ist die einzige Möglichkeit, Google Vids-Dateien herunterzuladen. Wenn Sie versuchen, Google Vids-Dateien zu exportieren, wird der fileNotExportable Fehler angezeigt. Weitere Informationen finden Sie unter Vorgänge mit langer Laufzeit verwalten.

curl

Der folgende curl-Befehl initiiert einen LRO und gibt eine JSON-Antwort zurück. Wenn Sie die Datei herunterladen oder diesen LRO abfragen möchten, müssen Sie eine weitere Anfrage mit der zurückgegebenen ID senden, um die Inhalts-URL abzurufen. Anschließend können Sie eine letzte curl-Anfrage an diese URL senden, um die Datei herunterzuladen. Weitere Informationen finden Sie unter Vorgänge mit langer Laufzeit verwalten.

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"

Ersetzen Sie Folgendes:

  • FILE_ID: die ID der herunterzuladenden Datei.
  • ACCESS_TOKEN: das Zugriffstoken, das Zugriff auf die API gewährt.

Google Workspace-Dokumentinhalte exportieren

Wenn Sie Google Workspace-Dokumentinhalte als Byte exportieren möchten, verwenden Sie die files.export-Methode mit der ID der zu exportierenden Datei und dem richtigen MIME-Typ. Der exportierte Inhalt ist auf 10 MB begrenzt.

Die folgenden Codebeispiele zeigen, wie Sie die Methode files.export verwenden, um ein Google Workspace-Dokument im PDF-Format zu exportieren:

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

drive/snippets/drive_v3/src/main/java/ExportPdf.java
import com.google.api.client.googleapis.json.GoogleJsonResponseException;
import com.google.api.client.http.HttpRequestInitializer;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.gson.GsonFactory;
import com.google.api.services.drive.Drive;
import com.google.api.services.drive.DriveScopes;
import com.google.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Arrays;

/* Class to demonstrate use-case of drive's export pdf. */
public class ExportPdf {

  /**
   * Download a Document file in PDF format.
   *
   * @param realFileId file ID of any workspace document format file.
   * @return byte array stream if successful, {@code null} otherwise.
   * @throws IOException if service account credentials file not found.
   */
  public static ByteArrayOutputStream exportPdf(String realFileId) throws IOException {
    // Load pre-authorized user credentials from the environment.
    // TODO(developer) - See https://developers.google.com/identity for
    // guides on implementing OAuth2 for your application.
    GoogleCredentials credentials = GoogleCredentials.getApplicationDefault()
        .createScoped(Arrays.asList(DriveScopes.DRIVE_FILE));
    HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter(
        credentials);

    // Build a new authorized API client service.
    Drive service = new Drive.Builder(new NetHttpTransport(),
        GsonFactory.getDefaultInstance(),
        requestInitializer)
        .setApplicationName("Drive samples")
        .build();

    OutputStream outputStream = new ByteArrayOutputStream();
    try {
      service.files().export(realFileId, "application/pdf")
          .executeMediaAndDownloadTo(outputStream);

      return (ByteArrayOutputStream) outputStream;
    } catch (GoogleJsonResponseException e) {
      // TODO(developer) - handle error appropriately
      System.err.println("Unable to export file: " + e.getDetails());
      throw e;
    }
  }
}

Python

drive/snippets/drive-v3/file_snippet/export_pdf.py
import io

import google.auth
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError
from googleapiclient.http import MediaIoBaseDownload


def export_pdf(real_file_id):
  """Download a Document file in PDF format.
  Args:
      real_file_id : file ID of any workspace document format file
  Returns : IO object with location

  Load pre-authorized user credentials from the environment.
  TODO(developer) - See https://developers.google.com/identity
  for guides on implementing OAuth2 for the application.
  """
  creds, _ = google.auth.default()

  try:
    # create drive api client
    service = build("drive", "v3", credentials=creds)

    file_id = real_file_id

    # pylint: disable=maybe-no-member
    request = service.files().export_media(
        fileId=file_id, mimeType="application/pdf"
    )
    file = io.BytesIO()
    downloader = MediaIoBaseDownload(file, request)
    done = False
    while done is False:
      status, done = downloader.next_chunk()
      print(f"Download {int(status.progress() * 100)}.")

  except HttpError as error:
    print(f"An error occurred: {error}")
    file = None

  return file.getvalue()


if __name__ == "__main__":
  export_pdf(real_file_id="1zbp8wAyuImX91Jt9mI-CAX_1TqkBLDEDcr2WeXBbKUY")

Node.js

drive/snippets/drive_v3/file_snippets/export_pdf.js
import {GoogleAuth} from 'google-auth-library';
import {google} from 'googleapis';

/**
 * Exports a Google Doc as a PDF.
 * @param {string} fileId The ID of the file to export.
 * @return {Promise<number>} The status of the export request.
 */
async function exportPdf(fileId) {
  // Authenticate with Google and get an authorized client.
  // TODO (developer): Use an appropriate auth mechanism for your app.
  const auth = new GoogleAuth({
    scopes: 'https://www.googleapis.com/auth/drive',
  });

  // Create a new Drive API client (v3).
  const service = google.drive({version: 'v3', auth});

  // Export the file as a PDF.
  const result = await service.files.export({
    fileId,
    mimeType: 'application/pdf',
  });

  // Print the status of the export.
  console.log(result.status);
  return result.status;
}

PHP

drive/snippets/drive_v3/src/DriveExportPdf.php
<?php
use Google\Client;
use Google\Service\Drive;
function exportPdf()
{
    try {
        $client = new Client();
        $client->useApplicationDefaultCredentials();
        $client->addScope(Drive::DRIVE);
        $driveService = new Drive($client);
        $realFileId = readline("Enter File Id: ");
        $fileId = '1ZdR3L3qP4Bkq8noWLJHSr_iBau0DNT4Kli4SxNc2YEo';
        $fileId = $realFileId;
        $response = $driveService->files->export($fileId, 'application/pdf', array(
            'alt' => 'media'));
        $content = $response->getBody()->getContents();
        return $content;

    }  catch(Exception $e) {
         echo "Error Message: ".$e;
    }

}

.NET

drive/snippets/drive_v3/DriveV3Snippets/ExportPdf.cs
using Google.Apis.Auth.OAuth2;
using Google.Apis.Download;
using Google.Apis.Drive.v3;
using Google.Apis.Services;

namespace DriveV3Snippets
{
    // Class to demonstrate use of Drive export pdf
    public class ExportPdf
    {
        /// <summary>
        /// Download a Document file in PDF format.
        /// </summary>
        /// <param name="fileId">Id of the file.</param>
        /// <returns>Byte array stream if successful, null otherwise</returns>
        public static MemoryStream DriveExportPdf(string fileId)
        {
            try
            {
                /* Load pre-authorized user credentials from the environment.
                 TODO(developer) - See https://developers.google.com/identity for 
                 guides on implementing OAuth2 for your application. */
                GoogleCredential credential = GoogleCredential.GetApplicationDefault()
                    .CreateScoped(DriveService.Scope.Drive);

                // Create Drive API service.
                var service = new DriveService(new BaseClientService.Initializer
                {
                    HttpClientInitializer = credential,
                    ApplicationName = "Drive API Snippets"
                });

                var request = service.Files.Export(fileId, "application/pdf");
                var stream = new MemoryStream();
                // Add a handler which will be notified on progress changes.
                // It will notify on each chunk download and when the
                // download is completed or failed.
                request.MediaDownloader.ProgressChanged +=
                    progress =>
                    {
                        switch (progress.Status)
                        {
                            case DownloadStatus.Downloading:
                            {
                                Console.WriteLine(progress.BytesDownloaded);
                                break;
                            }
                            case DownloadStatus.Completed:
                            {
                                Console.WriteLine("Download complete.");
                                break;
                            }
                            case DownloadStatus.Failed:
                            {
                                Console.WriteLine("Download failed.");
                                break;
                            }
                        }
                    };
                request.Download(stream);
                return stream;
            }
            catch (Exception e)
            {
                // TODO(developer) - handle error appropriately
                if (e is AggregateException)
                {
                    Console.WriteLine("Credential Not found");
                }
                else
                {
                    throw;
                }
            }
            return null;
        }
    }
}

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"

Ersetzen Sie Folgendes:

  • FILE_ID: die ID der herunterzuladenden Datei.
  • ACCESS_TOKEN: das Zugriffstoken, das Zugriff auf die API gewährt.
  • FILE_NAME: der Name der Ausgabedatei.

In den Codebeispielen der Clientbibliothek wird der eingeschränkte Bereich drive verwendet, mit dem Nutzer alle Ihre Drive-Dateien ansehen und verwalten können. Weitere Informationen zu Drive-Bereichen finden Sie unter Google Drive API-Bereiche auswählen.

In den Codebeispielen wird der MIME-Typ für den Export auch als application/pdf deklariert. Eine vollständige Liste aller MIME-Typen für den Export, die für die einzelnen Google Workspace Dokumente unterstützt werden, finden Sie unter MIME-Typen für den Export von Google Workspace-Dokumenten.

Google Workspace-Dokumentinhalte in einem Browser exportieren

Wenn Sie Google Workspace-Dokumentinhalte in einem Browser exportieren möchten, verwenden Sie das exportLinks Feld der files Ressource. Je nach Dokumenttyp wird für jeden verfügbaren MIME-Typ ein Link zum Herunterladen der Datei und ihrer Inhalte zurückgegeben. Sie können einen Nutzer entweder zu einer URL weiterleiten oder sie als anklickbaren Link anbieten.

curl

curl "https://www.googleapis.com/drive/v3/files/FILE_ID?fields=id,name,exportLinks" \
  --header "Authorization: Bearer ACCESS_TOKEN" \
  --header "Accept: application/json"

Ersetzen Sie Folgendes:

  • FILE_ID: die ID der Datei, für die der Downloadlink abgerufen werden soll.
  • ACCESS_TOKEN: das Zugriffstoken, das Zugriff auf die API gewährt.

Google Workspace-Dokumentinhalte in einer früheren Version in einem Browser exportieren

Wenn Sie Google Workspace-Dokumentinhalte in einer früheren Version in einem Browser exportieren möchten, verwenden Sie die revisions.get Methode mit der ID der herunterzuladenden Datei und der ID der Version, um einen Export Link zu generieren, über den Sie den Download ausführen können. Wenn der Nutzer Downloadzugriff auf die Datei hat, wird ein Link zum Herunterladen der Datei und ihrer Inhalte zurückgegeben. Sie können einen Nutzer entweder zu dieser URL weiterleiten oder sie als anklickbaren Link anbieten.

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"

Ersetzen Sie Folgendes:

  • FILE_ID: die ID der herunterzuladenden Datei.
  • REVISION_ID: die ID der herunterzuladenden Version.
  • ACCESS_TOKEN: das Zugriffstoken, das Zugriff auf die API gewährt.

Google Workspace-Dokumentinhalte mit Vorgängen mit langer Laufzeit exportieren

Wenn Sie Google Workspace-Dokumentinhalte mit Vorgängen mit langer Laufzeit (Long-Running Operations, LRO) exportieren möchten, verwenden Sie die files.download Methode mit der ID der herunterzuladenden Datei und der ID der Version. Weitere Informationen finden Sie unter Vorgänge mit langer Laufzeit verwalten.

curl

Der folgende curl-Befehl initiiert einen LRO und gibt eine JSON-Antwort zurück. Wenn Sie die Datei herunterladen oder diesen LRO abfragen möchten, müssen Sie eine weitere Anfrage mit der zurückgegebenen ID senden, um die Inhalts-URL abzurufen. Anschließend können Sie eine letzte curl-Anfrage an diese URL senden, um die Datei herunterzuladen. Weitere Informationen finden Sie unter Vorgänge mit langer Laufzeit verwalten.

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"

Ersetzen Sie Folgendes:

  • FILE_ID: die ID der herunterzuladenden Datei.
  • MIME_TYPE: der MIME-Typ, in den exportiert werden soll.
  • REVISION_ID: die ID der herunterzuladenden Version.
  • ACCESS_TOKEN: das Zugriffstoken, das Zugriff auf die API gewährt.

Freigabe von Dateien einschränken