• Главная
  • Реклама
  • Карта сайта
  • Контакты
Мы вконтакте
1
OSApple
  • НовостиApple
  • iPhoneios, об айфоне
  • Mac OS XMac & MacBook
  • iPadВсе о планшете
  • ИгрыiOS, Mac OS X
    • Игры iOS (iPhone/iPad/iPod)
    • Игры Mac OS X
  • ПриложенияiOS, Mac OS X
    • Приложения iOS (iPhone/iPad/iPod)
    • Программы Mac OS X
  • СоветыИнструкции
OsApple.ru » Инструкции » Простые автоматизации для Google Drive

Простые автоматизации для Google Drive

b9355c1a139bd3e81e987d5d88af2c10

Простые автоматизации для Google Drive

Работаем с файлами в Google Apps Script.

Сегодня мы научимся применять несколько простых скриптов для наведения порядка в облачном хранилище и сбора информации о документах. Даже если вы не имеете привычки использовать сервисы Google, это не значит, что статья будет бесполезной для вас.

Хранимые в Google Drive файлы можно быстро синхронизировать с жестким диском своего компьютера, а через него – с другими облачными сервисами.

Как использовать скрипты из статьи

  • Заходим на docs.google.com и авторизируемся;
  • Создаем новую таблицу;
  • Открываем Инструменты -> Редактор скриптов;
  • Копируем в окошко код из примеров и вносим необходимые правки;
  • Запускаем скрипт и предоставляем ему все разрешения.
  • Получаем список файлов на диске

    Google Drive появился три года назад. У многих пользователей за этот короткий срок успел образоваться необозримый бардак. Просто у сервиса есть две особенности, которые способствует воцарению хаоса в аккаунте юзера:

    • В одном каталоге можно создавать файлы и папки с одинаковыми именами;
    • Все документы, которые отправляются по почте, автоматически оказываются на Google Drive.

    Этот скрипт просматривает 100 последних измененных файлов на Google Drive и записывает в таблицу имя, дату создания, тип файла, размер, уникальный ID и дату последнего изменения для каждого документа.

    С помощью полученной таблицы можно быстро обозреть содержимое диска и отобрать список файлов для дальнейшей обработки (её примеры будут даны ниже).

    function fileList()
    {
    currentSheet = SpreadsheetApp.getActive();
    var files = DriveApp.getFiles();
    i=1;
    for(i=1;i<=100;i++)
    {
    files.hasNext();
    var file = files.next();
    currentSheet.getRange("A"+i).setValue(file.getName());
    currentSheet.getRange("B"+i).setValue(file.getDateCreated());
    currentSheet.getRange("C"+i).setValue(file.getMimeType());
    currentSheet.getRange("D"+i).setValue(file.getSize());
    currentSheet.getRange("E"+i).setValue(file.getId());
    currentSheet.getRange("F"+i).setValue(file.getLastUpdated());
    }
    }

    Запустив данный скрипт, вы увидите, что Google Apps Script работает с файлами очень медленно. Каждое заполнение строки таблицы можно отследить визуально. В примерах дается код для обработки только 100 файлов, так просмотр всех документов может несколько десятков минут.

    Если вам нужно обработать все документы на диске, необходимо морально подготовиться и вместо 100-кратной итерации использовать другой способ перебора файлов:

    files = DriveApp.getFiles();
    while (files.hasNext())
    {
    }

    Узнаем, кто имеет доступ к файлам

    Для каждого файла на Google Drive можно указать конкретных пользователей, которые имеют право на просмотр, а также тех, кто имеет право на редактирование. Этот скрипт поможет автоматически отобразить в ячейках таблицы список представителей обоих категорий:

    function filesSharing()
    {
    currentSheet = SpreadsheetApp.getActive();
    var files = DriveApp.getFiles();
    i=1;
    j=1;
    for(i=1;i<=100;i++)
    {
    editors=0;
    files.hasNext();
    var file = files.next();
    currentSheet.getRange("A"+i).setValue(file.getName());
    currentSheet.getRange("B"+i).setValue(file.getDateCreated());
    currentSheet.getRange("C"+i).setValue(file.getMimeType());
    if(file.getEditors().length>0)
    {
    for(j=1;j<=file.getEditors().length-1;j++)
    {
    editors=editors + ";" + file.getEditors()[j].getEmail();
    }
    currentSheet.getRange("D"+i).setValue(editors);
    }
    if(file.getViewers().length>0)
    {
    for(j=1;j<=file.getViewers().length-1;j++)
    {
    editors=editors + ";" + file.getViewers()[j].getEmail();
    }
    currentSheet.getRange("E"+i).setValue(editors);
    }
    }
    }

    Проверяем, нет ли файлов в общем доступе

    Файлам на Google Drive можно присваивать различные типы прав доступа: «доступен только владельцу», «доступен приглашенным пользователям», «доступен всем у кого есть ссылка» и «доступен всем в интернете». Если у документа настроить последний тип прав (а это легко сделать по неосторожности), то он попадет в поисковую выдачу Google. Случайные люди смогут его найти и просмотреть.

    Проверить, нет ли таких в вашем хранилище, можно с помощью этого скрипта:

    function fileAcess()
    {
    currentSheet = SpreadsheetApp.getActive();
    var files = DriveApp.getFiles();
    i=1;
    j=1;
    for(i=1;i<=100;i++)
    {
    files.hasNext();
    var file = files.next();
    if (file.getSharingAccess()=="ANYONE")
    {
    currentSheet.getRange("A"+j).setValue(file.getName());
    currentSheet.getRange("B"+j).setValue(file.getDateCreated());
    currentSheet.getRange("C"+j).setValue(file.getMimeType());
    currentSheet.getRange("D"+j).setValue(file.getSize());
    currentSheet.getRange("E"+j).setValue(file.getSharingAccess());
    j++;
    }
    }
    }

    Предоставляем пользователю доступ к файлам

    Иногда бывают ситуации, когда человеку необходимо предоставить доступ к нескольким десяткам документов, лежащим в разных папках. Делать это вручную долго и неудобно. Лучше получить список всех файлов первым примером кода в статье (чтобы в столбце E были ID документов), по-быстрому выбрать из них нужные и пройтись по ним этим скриптом:

    function addEditor()
    {
    currentSheet = SpreadsheetApp.getActive();
    var files = DriveApp.getFiles();
    i=1;
    for(i=1;i<=10;i++)
    {
    id = currentSheet.getRange("E"+i).getValue();
    DriveApp.getFileById(id).addEditor("email@example.com")
    }
    }

    Решаем пользователя доступа к файлам

    Бывает и обратная ситуация. К примеру, когда сотрудник увольняется из компании, надо резко лишить его доступа ко всем рабочим документам. Для этого применяется скрипт, обратный вышеприведенному.

    В этом случае необходимо убедиться, что в столбце E есть уникальные идентификаторы документов.

    function removeEditor()
    {
    currentSheet = SpreadsheetApp.getActive();
    var files = DriveApp.getFiles();
    i=1;
    for(i=1;i<=100;i++)
    {
    id = currentSheet.getRange("E"+i).getValue();
    DriveApp.getFileById(id).removeEditor("email@example.com");
    }
    }

    Создаем новые папки

    Довольно удобный способ хранения файлов — разложить их по временным периодам. Этот скрипт создаст папки для разных годов и положит в них файлы с соответствующей датой создания:

    function createFolders()
    {
    topFolder = DriveApp.createFolder("Рабочий архив");
    for (j=2012;j<=2015;j++)
    {
    currentFolder = topFolder.createFolder(i);
    for(i=1;i<=10;i++)
    {
    date = currentSheet.getRange("B"+i).getValue();
    if(date.getYear()==j)
    {
    id = currentSheet.getRange("E"+i).getValue();
    file = DriveApp.getFileById(id);
    currentFolder.addFile(file);
    }
    }
    }
    }

    Если знаете другие полезные скрипты для Google Drive, пишите их в комментариях, спасибо!

    Источник: Iphones.ru

    Дек 8, 2015Аля Бишопова
    • Нажмите, чтобы поделиться в Google+ (Открывается в новом окне)
    • Поделиться на Facebook (Открывается в новом окне)
    • Нажмите, чтобы поделиться на Twitter (Открывается в новом окне)
    • Нажмите, чтобы поделиться в Вконтакте (Открывается в новом окне)
    • Нажмите, чтобы поделиться записями на Pinterest (Открывается в новом окне)
    Mercedes-Benz SLS AMG – управляемый с гаджетаПравильно настраиваем двухэтапную авторизацию
    Читайте также:
     
    Приложения из App Store не скачиваются и не обновляются. Что делать
     
    Получи GoPro за 1 рубль. И не только

    Добавить комментарий Отменить ответ

    7 г. назад ИнструкцииGoogle Apps Script, Google Drive
    Аля Бишопова
    0
    Facebook
    0
    Twitter
    0
    Pinterest
    Читать @osappleru

    Последние новости
    АвтоВАЗ представил новое поколение LADA Vesta. Теперь со светодиодными фарами
    1 год назад
    Spotify выпустил музыкальный плеер для автомобилей Car Thing за $90
    1 год назад
    OSApple
    • Реклама
    • Карта сайта
    • Контакты
    • Игры футбол
    • Часы Apple
    • Cydia
    • Apple Watch
    Если Вы заинтересованы в размещении рекламы, пишите на info@osapple.ru
    © 2014-2021 OSApple.ru. Любое копирование информации с сайта без обратной ссылки на osapple.ru запрещено!