Servizio Drive avanzato

Il servizio avanzato di Drive ti consente di utilizzare API Google Drive in Apps Script. Molto simile Drive integrato di Apps Script , questa API consente agli script di creare, trovare e modificare file e cartelle su Google Drive. Nella maggior parte dei casi, lo strumento è più facile da usare, ma questo servizio avanzato offre tra cui l'accesso alle proprietà di file personalizzate e le revisioni e cartelle.

Riferimento

Per informazioni dettagliate su questo servizio, consulta la documentazione di riferimento documentazione per l'API Google Drive. Come tutti avanzati in Apps Script, il percorso Il servizio Drive utilizza gli stessi oggetti, metodi e parametri di l'API pubblica. Per ulteriori informazioni, consulta la sezione Come vengono le firme dei metodi determinati.

Per segnalare problemi e ricevere ulteriore assistenza, consulta la pagina di assistenza per l'API Drive .

Codice di esempio

Gli esempi di codice in questa sezione utilizzano la versione 3 dell'API.

Carica file

Il seguente esempio di codice mostra come salvare un file nel 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);
  }
}

Elenca cartelle

Il seguente esempio di codice mostra come elencare le cartelle di primo livello nella cartella Drive. Nota l'uso di token di pagina per accedere all'elenco completo che consentono di analizzare i dati e visualizzare i risultati.

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

Elenca revisioni

Il seguente esempio di codice mostra come elencare le revisioni di un determinato file. Nota che alcuni file possono avere diverse revisioni e che dovresti usare i token di pagina per accedi all'elenco completo dei risultati.

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

Aggiungi proprietà file

Il seguente esempio di codice utilizza il campo appProperties per aggiungere un modello in un file. La proprietà personalizzata è visibile solo allo script. Per aggiungere un proprietà personalizzata al file visibile anche ad altre app, usa la campo properties. Per ulteriori informazioni, consulta Aggiungere un file personalizzato proprietà.

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