Servicio avanzado de Drive

El servicio avanzado de Drive te permite usar la La API de Google Drive en Apps Script Muy similar La unidad integrada de Google Apps Script servicio, esta API permite que las secuencias de comandos creen, encuentren, y modificar archivos y carpetas en Google Drive. En la mayoría de los casos, el sistema es más fácil de usar, pero este servicio avanzado brinda como el acceso a propiedades de archivos personalizados, así como a revisiones de archivos y carpetas.

Referencia

Para obtener información detallada sobre este servicio, consulta la referencia documentación de la API de Google Drive. Como todas servicios avanzados en Apps Script, la API de El servicio de Drive usa los mismos objetos, métodos y parámetros que la API pública. Para obtener más información, consulta Cómo se usan las firmas de métodos determinado.

Para informar problemas y buscar otro tipo de asistencia, consulta la Asistencia con la API de Drive de la guía de YouTube.

Código de muestra

En las muestras de código de esta sección, se usa la versión 3 de la API.

Subir archivos

En la siguiente muestra de código, se indica cómo guardar un archivo en el nombre de usuario Drive

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);
  }
}

Mostrar lista de carpetas

En la siguiente muestra de código, se indica cómo enumerar las carpetas de nivel superior en la carpeta Drive Observa el uso de tokens de página para acceder a la lista completa de resultados.

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);
}

Enumerar revisiones

En la siguiente muestra de código, se indica cómo enumerar las revisiones de un archivo determinado. Nota que algunos archivos pueden tener varias revisiones y debes usar tokens de página para acceda a la lista completa de resultados.

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);
}

Agrega propiedades del archivo

En la siguiente muestra de código, se usa el campo appProperties para agregar un valor personalizado propiedad a un archivo. Solo la secuencia de comandos puede ver la propiedad personalizada. Para agregar un propiedad personalizada del archivo que también es visible para otras apps, usa el properties. Para obtener más información, consulta Cómo agregar un archivo personalizado. propiedades.

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);
  }
}