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

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

Ссылка

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

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

Пример кода

В примерах кода в этом разделе используется версия 3 API.

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

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

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

Список папок

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

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

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

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

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

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

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

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