Задать вопрос
@Makroshka

Как через Apps Scripts записать файл на сервер?

Есть скрипт, который создает и записывает файл json на диск гугл. А как его переделать, чтобы созданный файл сразу записывался на сервер(ftps) с авторизацией(имя пользователя и пароль)?
Вот имеющийся у меня код:
function myJson() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Dannie');
  var [headers, ...rows] = sheet.getDataRange().getValues();
  var jsonString = `\{\"SeminarKNF\":${JSON.stringify(data2json(headers, rows))}\}`
  var folders = DriveApp.getFoldersByName('JSON');
  if (folders.hasNext()) {
    var folder = folders.next();
    saveData(folder, 'json_trg_Seminar_KNF_test.json',jsonString);
  }
}
function data2json(headers, rows) {
  var obj = {},items = {};
  for (var i in rows) {
    obj = {};
    for (var col = 1; col < headers.length; col++) {
      if(rows[i][col]!='') obj[headers[col]] = rows[i][col];
    }
    items[rows[i][0]] = obj
  }
  return items;
}
function saveData(folder, fileName, content) {
  var children = folder.getFilesByName(fileName);
  var file = null;
  if (children.hasNext()) {
    file = children.next();
    file.setContent(content);
  } else {
    file = folder.createFile(fileName, content);
  }

  Logger.log(file.getUrl())
}
  • Вопрос задан
  • 15 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@8x8z
Поднимаете на своем сервере REST API, например на express.
И отправляете id файла из Google App Script.

var serverUrl = 'https://youserver.com/fsend-id-file';
  var payload = {
    'fileId': fileId
  };
  var options = {
    'method': 'post',
    'payload': payload,
    'contentType': 'application/json'
  };
  var response = UrlFetchApp.fetch(serverUrl, options);


На сервере через Drive API files.download забираете файл к себе на сервер.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы