Erweiterter Drive-Dienst

Mit dem erweiterten Drive-Dienst können Sie die Google Drive API in Apps Script verwenden. Ähnlich wie der integrierte Drive-Dienst von Apps Script ermöglicht diese API Skripts das Erstellen, Suchen und Ändern von Dateien und Ordnern in Google Drive. In den meisten Fällen ist der integrierte Dienst einfacher zu verwenden. Er bietet jedoch einige zusätzliche Funktionen, einschließlich des Zugriffs auf benutzerdefinierte Dateieigenschaften sowie Überarbeitungen von Dateien und Ordnern.

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 So werden Methodensignaturen ermittelt.

Informationen zum Melden von Problemen und zur Suche nach weiteren Supportoptionen finden Sie im Supportleitfaden für Drive Version 2.

Beispielcode

Im folgenden Beispielcode wird Version 2 der API verwendet.

Dateien werden hochgeladen

Das folgende Beispiel zeigt, wie eine Datei in der Ablage eines Nutzers gespeichert wird.

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

Das folgende Beispiel zeigt, wie die Ordner der obersten Ebene im Drive-Konto des Nutzers aufgelistet werden. Beachten Sie die Verwendung von Seitentokens für den Zugriff auf die vollständige Ergebnisliste.

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. Einige Attribute von Überarbeitungen sind nur für bestimmte Dateitypen verfügbar. Beispielsweise enthalten Google Workspace -Anwendungsdateien Links,über die die Datei in verschiedene Formate exportiert werden kann.

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

Das folgende Beispiel zeigt, wie Sie einer Datei eine benutzerdefinierte Eigenschaft hinzufügen. Im Gegensatz zu den Dokumenteigenschaften von Apps Script können Sie auf die benutzerdefinierten Dateieigenschaften von Drive außerhalb von Apps Script und anderen Anwendungen zugreifen, wenn die Sichtbarkeit auf PUBLIC festgelegt 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);
  }
}