Нужен скрипт листов для сохранения img на диск - PullRequest
0 голосов
/ 11 апреля 2019

Мне нужен сценарий для использования с листами Google для сохранения списка URL-адресов .img в определенной папке на диске Google с именами файлов из другой ячейки.

Например:
Колонка A - URL файла
/imagefilepath.jpg
Колонка B - Сохранить как имя
image_1

Автоматическое сохранение /imagefilepath.jpg в папку на диске Google "Test" с именем файла "image_1".

Это возможно?

Новичок в скриптах .. нужен совет / указатели или рабочий скрипт (даже лучше)!

В настоящее время получил следующее:

    /**
 * Uploads a new file to the user's Drive.
 */
function uploadFile() {
  var imgurl = 'https://www.w3schools.com/w3css/img_lights.jpg';
  var image = UrlFetchApp.fetch(imgurl).getBlob();
  var filename = setName('test');
  var folder = DriveApp.getFoldersByName(folder);
    if (folder != null) {
      var file = DriveApp.createFile(image);
    }

  Logger.log('ID: %s, File size (bytes): %s', file.id, file.fileSize);
}

Но он сохраняется как имя URL-адреса в корне диска Google и только в том случае, если я вставляю URL-адреса в скрипт. Как мне сделать его динамичным?

P.s обнаружил здесь несколько скриптов, но все они устарели / не работают. У меня более 2000 URL-адресов и разных имен файлов.

1 Ответ

0 голосов
/ 11 апреля 2019

Попробуйте:

function uploadFile() {
  var imgurl = 'https://www.w3schools.com/w3css/img_lights.jpg';
  var image = UrlFetchApp.fetch(imgurl).getBlob().getAs('image/jpeg').setName('test');
  var folder = DriveApp.getFolderById('FolderId');
  var file = DriveApp.createFile(image);
  Drive.Files.update({"parents": [{"id": folder.getId()}]}, file.getId());
}

Итак, ваша конечная функция должна выглядеть примерно так:

function uploadFiles() {
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getActiveSheet();
  var rg=sh.getDataRange();
  var vA=rg.getValues();
  for(var i=0;i<vA.length;i++) {
    var imgurl=vA[i][0];//Column A for url
    var name=vA[i][1];//Column B for filename
    var image=UrlFetchApp.fetch(imgurl).getBlob().getAs('image/jpeg').setName(name);
    var folder=DriveApp.getFolderById('1aIawMeJCjB1GWaV6URH3jkV4xUJhaYLV');
    var file=DriveApp.createFile(image);
    Drive.Files.update({"parents": [{"id": folder.getId()}]}, file.getId());
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...