Erweiterter Drive-Dienst

Mit dem erweiterten Drive-Dienst können Sie die Google Drive API in Apps Script verwenden. Ähnlich wie mit dem integrierten Drive-Dienst von Apps Script können Sie mit dieser API Dateien und Ordner in Google Drive erstellen, suchen und ändern. In den meisten Fällen ist der integrierte Dienst einfacher zu nutzen. Dieser erweiterte Dienst bietet jedoch einige zusätzliche Funktionen, wie Zugriff auf benutzerdefinierte Dateiattribute sowie Überarbeitungen für Dateien und Ordner.

Referenz

Ausführliche Informationen zu diesem Dienst finden Sie in der Referenzdokumentation zur Google Drive API. Wie alle erweiterten Dienste in Apps Script verwendet der erweiterte Drive-Dienst dieselben Objekte, Methoden und Parameter wie die öffentliche API. Weitere Informationen finden Sie unter Wie Signaturen ermittelt werden.

Informationen zum Melden von Problemen und zur Suche nach weiterem Support finden Sie im Support für Drive v2.

Beispielcode

Im Beispielcode unten wird Version 2 der API verwendet.

Dateien werden hochgeladen

Im folgenden Beispiel wird gezeigt, wie Sie eine Datei in Google Drive eines Nutzers speichern.

Advanced/drive.gs
/**
 * Uploads a new file to the user's Drive.
 */
function uploadFile() {
  try {
    // Makes a request to fetch a URL.
    const image = UrlFetchApp.fetch('http://goo.gl/nd7zjB').getBlob();
    let file = {
      title: 'google_logo.png',
      mimeType: 'image/png'
    };
    // Insert new files to user's Drive
    file = Drive.Files.insert(file, image);
    console.log('ID: %s, File size (bytes): %s', file.id, file.fileSize);
  } catch (err) {
    // TODO (developer) - Handle exception
    console.log('Failed to upload file with error %s', err.message);
  }
}

Ordner auflisten

Im folgenden Beispiel sehen Sie, wie die übergeordneten Ordner im Drive des Nutzers aufgelistet werden. Sie können Seiten-Tokens verwenden, um die vollständige Liste der Ergebnisse aufzurufen.

Advanced/drive.gs
/**
 * Lists the top-level folders in the user's Drive.
 */
function listRootFolders() {
  const query = '"root" in parents and trashed = false and ' +
    'mimeType = "application/vnd.google-apps.folder"';
  let folders;
  let pageToken = null;
  do {
    try {
      folders = Drive.Files.list({
        q: query,
        maxResults: 100,
        pageToken: pageToken
      });
      if (!folders.items || folders.items.length === 0) {
        console.log('No folders found.');
        return;
      }
      for (let i = 0; i < folders.items.length; i++) {
        const folder = folders.items[i];
        console.log('%s (ID: %s)', folder.title, folder.id);
      }
      pageToken = folders.nextPageToken;
    } catch (err) {
      // TODO (developer) - Handle exception
      console.log('Failed with error %s', err.message);
    }
  } while (pageToken);
}

Überarbeitungen auflisten

Das folgende Beispiel zeigt, wie die Überarbeitungen für eine bestimmte Datei aufgelistet werden. Beachten Sie, dass einige Überarbeitungseigenschaften nur für bestimmte Dateitypen verfügbar sind. Google Workspace -Anwendungsdateien belegen beispielsweise keinen Speicherplatz in Google Drive und geben daher eine Dateigröße von 0 zurück.

Advanced/drive.gs
/**
 * Lists the revisions of a given file. Note that some properties of revisions
 * are only available for certain file types. For example, Google Workspace
 * application files do not consume space in Google Drive and thus list a file
 * size of 0.
 * @param {string} fileId The ID of the file to list revisions for.
 */
function listRevisions(fileId) {
  try {
    const revisions = Drive.Revisions.list(fileId);
    if (!revisions.items || revisions.items.length === 0) {
      console.log('No revisions found.');
      return;
    }
    for (let i = 0; i < revisions.items.length; i++) {
      const revision = revisions.items[i];
      const date = new Date(revision.modifiedDate);
      console.log('Date: %s, File size (bytes): %s', date.toLocaleString(),
          revision.fileSize);
    }
  } catch (err) {
    // TODO (developer) - Handle exception
    console.log('Failed with error %s', err.message);
  }
}

Benutzerdefinierte Eigenschaften hinzufügen

Im folgenden Beispiel sehen Sie, wie Sie einer Datei eine benutzerdefinierte Eigenschaft hinzufügen. Im Gegensatz zu den Dokumenteigenschaften von Apps Script können Sie auf die benutzerdefinierten Attribute von Drive außerhalb von Apps Script und von anderen Anwendungen zugreifen, wenn die Sichtbarkeit auf PUBLIC gesetzt ist.

Advanced/drive.gs
/**
 * Adds a custom property to a file. Unlike Apps Script's DocumentProperties,
 * Drive's custom file properties can be accessed outside of Apps Script and
 * by other applications (if the visibility is set to PUBLIC).
 * @param {string} fileId The ID of the file to add the property to.
 */
function addCustomProperty(fileId) {
  try {
    const property = {
      key: 'department',
      value: 'Sales',
      visibility: 'PUBLIC'
    };
    // Adds a property to a file
    Drive.Properties.insert(property, fileId);
  } catch (err) {
    // TODO (developer) - Handle exception
    console.log('Failed with error %s', err.message);
  }
}