Layanan Drive Lanjutan

Layanan Drive lanjutan memungkinkan Anda menggunakan Google Drive API di Apps Script. Sangat mirip Drive bawaan Apps Script , API ini memungkinkan skrip untuk membuat, menemukan, dan mengubah file serta folder di Google Drive. Pada umumnya, {i>built-in<i} lebih mudah digunakan, tetapi layanan lanjutan ini memberikan beberapa akses ke properti {i>file<i} khusus serta revisi untuk {i>file<i} dan {i>folder<i}.

Referensi

Untuk informasi mendetail tentang layanan ini, lihat dokumentasi referensi untuk Google Drive API. Suka semua layanan lanjutan di Apps Script, Layanan Drive menggunakan objek, metode, dan parameter yang sama dengan API publik. Untuk informasi selengkapnya, lihat Cara tanda tangan metode ditentukan.

Untuk melaporkan masalah dan menemukan dukungan lainnya, lihat dukungan Drive API panduan kami.

Kode contoh

Contoh kode di bagian ini menggunakan API versi 3.

Upload file

Contoh kode berikut menunjukkan cara menyimpan file ke Mengemudi.

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 = {
      name: 'google_logo.png',
      mimeType: 'image/png'
    };
    // Create a file in the user's Drive.
    file = Drive.Files.create(file, image, {'fields': 'id,size'});
    console.log('ID: %s, File size (bytes): %s', file.id, file.size);
  } catch (err) {
    // TODO (developer) - Handle exception
    console.log('Failed to upload file with error %s', err.message);
  }
}

Mencantumkan folder

Contoh kode berikut menampilkan cara mencantumkan folder tingkat atas di folder Mengemudi. Perhatikan penggunaan token halaman untuk mengakses daftar lengkap hasil pengujian tersebut.

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,
        pageSize: 100,
        pageToken: pageToken
      });
      if (!folders.files || folders.files.length === 0) {
        console.log('All folders found.');
        return;
      }
      for (let i = 0; i < folders.files.length; i++) {
        const folder = folders.files[i];
        console.log('%s (ID: %s)', folder.name, folder.id);
      }
      pageToken = folders.nextPageToken;
    } catch (err) {
      // TODO (developer) - Handle exception
      console.log('Failed with error %s', err.message);
    }
  } while (pageToken);
}

Mencantumkan revisi

Contoh kode berikut menunjukkan cara menampilkan daftar revisi untuk file tertentu. Catatan beberapa file dapat memiliki beberapa revisi dan Anda harus menggunakan token halaman untuk mengakses daftar hasil yang lengkap.

advanced/drive.gs
/**
 * Lists the revisions of a given file.
 * @param {string} fileId The ID of the file to list revisions for.
 */
function listRevisions(fileId) {
  let revisions;
  const pageToken = null;
  do {
    try {
      revisions = Drive.Revisions.list(
          fileId,
          {'fields': 'revisions(modifiedTime,size),nextPageToken'});
      if (!revisions.revisions || revisions.revisions.length === 0) {
        console.log('All revisions found.');
        return;
      }
      for (let i = 0; i < revisions.revisions.length; i++) {
        const revision = revisions.revisions[i];
        const date = new Date(revision.modifiedTime);
        console.log('Date: %s, File size (bytes): %s', date.toLocaleString(),
            revision.size);
      }
      pageToken = revisions.nextPageToken;
    } catch (err) {
      // TODO (developer) - Handle exception
      console.log('Failed with error %s', err.message);
    }
  } while (pageToken);
}

Menambahkan properti file

Contoh kode berikut menggunakan kolom appProperties untuk menambahkan kode kustom properti ke file. Properti kustom hanya terlihat oleh skrip. Untuk menambahkan ke file yang juga terlihat oleh aplikasi lain, gunakan Kolom properties. Untuk informasi selengkapnya, lihat Menambahkan file kustom properti.

advanced/drive.gs
/**
 * Adds a custom app 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; however, appProperties are only visible to the script.
 * @param {string} fileId The ID of the file to add the app property to.
 */
function addAppProperty(fileId) {
  try {
    let file = {
      'appProperties': {
        'department': 'Sales'
      }
    };
    // Updates a file to add an app property.
    file = Drive.Files.update(file, fileId, null, {'fields': 'id,appProperties'});
    console.log(
        'ID: %s, appProperties: %s',
        file.id,
        JSON.stringify(file.appProperties, null, 2));
  } catch (err) {
    // TODO (developer) - Handle exception
    console.log('Failed with error %s', err.message);
  }
}