Для сохранения файла на сервер FTPS с использованием Google Apps Script вам нужно использовать библиотеку, которая поддерживает FTPS-протокол. Однако, поскольку Google Apps Script не имеет встроенной поддержки FTP/FTPS, мы можем использовать сторонние решения, такие как Google Apps Script Libraries (например, FTP Client).
К сожалению, существует несколько ограничений по использованию FTP/FTPS в Google Apps Script, так как стандартные библиотеки не поддерживают такие операции. Но вы можете рассмотреть использование стороннего API для FTP или даже разрабатывать собственный подход.
Ниже приведен пример, как это можно реализовать с использованием пользовательского скрипта для FTPS:
1. **Подключите библиотеку FTP (если доступна)** или включите функцию FTPS, используя сторонний интернет-сервис.
2. **Импортируйте библиотеки и создайте функцию для загрузки файла на FTPS-сервер.**
Примерный код может быть таким:
```javascript
function myJson() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Dannie');
var [headers, ...rows] = sheet.getDataRange().getValues();
var jsonString = `{"SeminarKNF":${JSON.stringify(data2json(headers, rows))}}`;
var filename = 'json_trg_Seminar_KNF_test.json';
// Загружаем файл на FTPS сервер
uploadFileToFTPS(filename, 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 uploadFileToFTPS(fileName, content) {
var ftpsHost = 'ftp.yourserver.com';
var ftpsUser = 'YOUR_USERNAME';
var ftpsPass = 'YOUR_PASSWORD';
var ftpsFolder = '/path/to/upload/folder/';
// Используем сторонний API или библиотеку для загрузки файла на FTPS сервер
// Вам нужно будет установить библиотеку для работы с FTPS
// Псевдокод для загрузки файла:
var client = new SomeFTPSClient(ftpsHost, ftpsUser, ftpsPass, /* дополнительные параметры */);
client.connect();
client.upload(ftpsFolder + fileName, content);
client.disconnect();
}
```
Обратите внимание на следующие моменты:
- Пример выше использует псевдокод для загрузки файла. Вам нужно будет использовать конкретную библиотеку для работы с FTPS.
- Также проверьте возможность использования стороннего API для работы с FTPS, например, публичные библиотеки, которые могут предоставлять такой функционал. Возможно, потребуется использование OAuth2 для аутентификации.
- Не забудьте учитывать безопасность данных, учитывая, что пароли не должны быть «жестко закодированы» в скриптах. Используйте свойства проекта для хранения конфиденциальной информации.