Расширенная служба привода

Расширенный сервис Диска позволяет использовать API Google Диска в Apps Script. Подобно встроенному сервису Диска Apps Script, этот API позволяет скриптам создавать, находить и изменять файлы и папки в Google Диске. В большинстве случаев встроенный сервис проще в использовании, но этот расширенный сервис предоставляет несколько дополнительных функций, включая доступ к настраиваемым свойствам файлов и версиям файлов и папок.

Ссылка

Подробную информацию об этом сервисе см. в справочной документации по API Google Drive. Как и все расширенные сервисы в Apps Script, расширенный сервис Drive использует те же объекты, методы и параметры, что и общедоступный API. Подробнее см. в статье «Как определяются сигнатуры методов» .

Чтобы сообщить о проблемах и найти другую поддержку, см. руководство по поддержке Drive API .

Пример кода

Примеры кода в этом разделе используют API версии 3 .

Загрузить файлы

В следующем примере кода показано, как сохранить файл на Диске пользователя.

расширенный/диск.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);   } }

Список папок

В следующем примере кода показано, как вывести список папок верхнего уровня на Диске пользователя. Обратите внимание на использование токенов страниц для доступа к полному списку результатов.

расширенный/диск.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); }

Список изменений

В следующем примере кода показано, как получить список ревизий для заданного файла. Обратите внимание, что некоторые файлы могут иметь несколько ревизий, поэтому для доступа к полному списку результатов следует использовать маркеры страниц.

расширенный/диск.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); }

Добавить свойства файла

В следующем примере кода поле appProperties используется для добавления настраиваемого свойства к файлу. Настраиваемое свойство видно только скрипту. Чтобы добавить настраиваемое свойство к файлу, которое также будет видно другим приложениям, используйте поле properties . Подробнее см. в разделе Добавление настраиваемых свойств файла .

расширенный/диск.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);   } }