1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2026-06-20 09:19:27 +02:00

Main build (Jenkins)

This commit is contained in:
Vitaly the Alpaca (bot)
2025-09-25 22:19:13 +03:00
parent 5012331294
commit fcf08c8be4
112 changed files with 16707 additions and 9064 deletions
+1
View File
@@ -0,0 +1 @@
{"Host":"172.33.0.13","Port":"2222","Login":"bayselonarrend","Password":"12we...","ProxyType":"http","ProxyAddress":"127.0.0.1","ProxyPort":8071,"ProxyLogin":"proxyuser","ProxyPassword":"12we..."}
+1
View File
@@ -0,0 +1 @@
{"Host":"172.33.0.13","Port":"2222","Login":"bayselonarrend","Password":"12we...","ProxyType":"http","ProxyAddress":"127.0.0.1","ProxyPort":8071,"ProxyLogin":"proxyuser","ProxyPassword":"12we..."}
+1
View File
@@ -0,0 +1 @@
{"Host":"172.33.0.13","Port":"2222","Login":"bayselonarrend","Password":"12we...","ProxyType":"http","ProxyAddress":"127.0.0.1","ProxyPort":8071,"ProxyLogin":"proxyuser","ProxyPassword":"12we..."}
+1
View File
@@ -0,0 +1 @@
{"Host":"172.33.0.13","Port":"2222","Login":"bayselonarrend","Password":"12we...","ProxyType":"http","ProxyAddress":"127.0.0.1","ProxyPort":8071,"ProxyLogin":"proxyuser","ProxyPassword":"12we..."}
+1
View File
@@ -0,0 +1 @@
{"Host":"172.33.0.13","Port":"2222","Login":"bayselonarrend","Password":"12we...","ProxyType":"http","ProxyAddress":"127.0.0.1","ProxyPort":8071,"ProxyLogin":"proxyuser","ProxyPassword":"12we..."}
+1
View File
@@ -0,0 +1 @@
{"Host":"172.33.0.13","Port":"2222","Login":"bayselonarrend","Password":"12we...","ProxyType":"http","ProxyAddress":"127.0.0.1","ProxyPort":8071,"ProxyLogin":"proxyuser","ProxyPassword":"12we..."}
+1
View File
@@ -0,0 +1 @@
{"Host":"172.33.0.13","Port":"2222","Login":"bayselonarrend","Password":"12we...","ProxyType":"http","ProxyAddress":"127.0.0.1","ProxyPort":8071,"ProxyLogin":"proxyuser","ProxyPassword":"12we..."}
+43
View File
@@ -0,0 +1,43 @@
Host = "172.33.0.13";
Port = "2222";
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
If AuthorizationType = "By login and password" Then
Login = "bayselonarrend";
Password = "12we...";
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = "bayselonarrend";
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = "bayselonarrend";
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = "http"; // http, socks5, socks4
ProxyAddress = "127.0.0.1";
ProxyPort = "8071";
ProxyLogin = "proxyuser";
ProxyPassword = "12we...";
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Result = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
+49
View File
@@ -0,0 +1,49 @@
Host = "172.33.0.13";
Port = "2222";
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
If AuthorizationType = "By login and password" Then
Login = "bayselonarrend";
Password = "12we...";
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = "bayselonarrend";
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = "bayselonarrend";
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = "http"; // http, socks5, socks4
ProxyAddress = "127.0.0.1";
ProxyPort = "8071";
ProxyLogin = "proxyuser";
ProxyPassword = "12we...";
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Connection = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
If OPI_SFTP.IsConnector(Connection) Then
Result = OPI_SFTP.CreateNewDirectory(Connection, "new_dir");
Else
Result = Connection; // Error of connection
EndIf;
+49
View File
@@ -0,0 +1,49 @@
Host = "172.33.0.13";
Port = "2222";
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
If AuthorizationType = "By login and password" Then
Login = "bayselonarrend";
Password = "12we...";
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = "bayselonarrend";
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = "bayselonarrend";
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = "http"; // http, socks5, socks4
ProxyAddress = "127.0.0.1";
ProxyPort = "8071";
ProxyLogin = "proxyuser";
ProxyPassword = "12we...";
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Connection = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
If OPI_SFTP.IsConnector(Connection) Then
Result = OPI_SFTP.DeleteDirectory(Connection, "new_dir");
Else
Result = Connection; // Error of connection
EndIf;
+49
View File
@@ -0,0 +1,49 @@
Host = "172.33.0.13";
Port = "2222";
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
If AuthorizationType = "By login and password" Then
Login = "bayselonarrend";
Password = "12we...";
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = "bayselonarrend";
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = "bayselonarrend";
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = "http"; // http, socks5, socks4
ProxyAddress = "127.0.0.1";
ProxyPort = "8071";
ProxyLogin = "proxyuser";
ProxyPassword = "12we...";
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Connection = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
If OPI_SFTP.IsConnector(Connection) Then
Result = OPI_SFTP.DeleteFile(Connection, "files_folder/pic_from_binary.png");
Else
Result = Connection; // Error of connection
EndIf;
+49
View File
@@ -0,0 +1,49 @@
Host = "172.33.0.13";
Port = "2222";
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
If AuthorizationType = "By login and password" Then
Login = "bayselonarrend";
Password = "12we...";
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = "bayselonarrend";
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = "bayselonarrend";
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = "http"; // http, socks5, socks4
ProxyAddress = "127.0.0.1";
ProxyPort = "8071";
ProxyLogin = "proxyuser";
ProxyPassword = "12we...";
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Connection = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
If OPI_SFTP.IsConnector(Connection) Then
Result = OPI_SFTP.GetCurrentDirectory(Connection);
Else
Result = Connection; // Error of connection
EndIf;
+49
View File
@@ -0,0 +1,49 @@
Host = "172.33.0.13";
Port = "2222";
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
If AuthorizationType = "By login and password" Then
Login = "bayselonarrend";
Password = "12we...";
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = "bayselonarrend";
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = "bayselonarrend";
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = "http"; // http, socks5, socks4
ProxyAddress = "127.0.0.1";
ProxyPort = "8071";
ProxyLogin = "proxyuser";
ProxyPassword = "12we...";
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Connection = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
If OPI_SFTP.IsConnector(Connection) Then
Result = OPI_SFTP.ListObjects(Connection, "test_folder", True);
Else
Result = Connection; // Error of connection
EndIf;
+56
View File
@@ -0,0 +1,56 @@
ImagePath = "C:\pic.png";
ImageDD = New BinaryData(Image);
Host = "172.33.0.13";
Port = "2222";
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
If AuthorizationType = "By login and password" Then
Login = "bayselonarrend";
Password = "12we...";
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = "bayselonarrend";
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = "bayselonarrend";
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = "http"; // http, socks5, socks4
ProxyAddress = "127.0.0.1";
ProxyPort = "8071";
ProxyLogin = "proxyuser";
ProxyPassword = "12we...";
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Connection = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
If OPI_SFTP.IsConnector(Connection) Then
Result = OPI_SFTP.UploadFile(Connection, Image, "pic_from_disk.png");
Result2 = OPI_SFTP.UploadFile(Connection, ImageDD, "files_folder/pic_from_binary.png");
Else
Result = Connection; // Error of connection
EndIf;
+1 -1
View File
@@ -1,5 +1,5 @@
Token = "6129457865:AAFyzNYOAFbu...";
ChatID = "@testsichee";
MessageID = "20661";
MessageID = "21081";
Result = OPI_Telegram.DeleteMessage(Token, ChatID, MessageID);
+1 -1
View File
@@ -1,4 +1,4 @@
FileID = "CQACAgIAAx0EcNsaZQACUL5oxtZxTAF37mtQa89Nqv8gbBvdbQACnYcAAmMlOUrfHJ36K_ssgzYE";
FileID = "CQACAgIAAx0EcNsaZQACUmJo1NxoX-106k_r0ejDFQLTjHkbwQACJXsAAi1mqUqQ81MjxNzPATYE";
Token = "6129457865:AAFyzNYOAFbu...";
Result = OPI_Telegram.DownloadFile(Token, FileID);
+1 -1
View File
@@ -1,6 +1,6 @@
Token = "6129457865:AAFyzNYOAFbu...";
ChatID = "461699897";
ChannelID = "@testsichee";
MessageID = "20661";
MessageID = "21081";
Result = OPI_Telegram.ForwardMessage(Token, MessageID, ChannelID, ChatID);
+1 -1
View File
@@ -1,5 +1,5 @@
Token = "6129457865:AAFyzNYOAFbu...";
ChannelID = "@testsichee";
MessageID = "20661";
MessageID = "21081";
Result = OPI_Telegram.PinMessage(Token, ChannelID, MessageID);
+1 -1
View File
@@ -1,6 +1,6 @@
Token = "6129457865:AAFyzNYOAFbu...";
ChatID = "461699897";
MessageID = "16306";
MessageID = "16626";
Description = "New picture description";
Result = OPI_Telegram.ReplaceMessageCaption(Token, ChatID, MessageID, Description);
+1 -1
View File
@@ -1,6 +1,6 @@
Token = "6129457865:AAFyzNYOAFbu...";
ChatID = "461699897";
MessageID = "16303";
MessageID = "16623";
ButtonArray = New Array;
ButtonArray.Add("New button 3");
+1 -1
View File
@@ -1,6 +1,6 @@
Token = "6129457865:AAFyzNYOAFbu...";
ChatID = "@testsichee";
MessageID = "20661";
MessageID = "21081";
Text = "New message text";
Result = OPI_Telegram.ReplaceMessageText(Token, ChatID, MessageID, Text);
+1 -1
View File
@@ -1,5 +1,5 @@
Token = "6129457865:AAFyzNYOAFbu...";
ChannelID = "@testsichee";
MessageID = "20661";
MessageID = "21081";
Result = OPI_Telegram.UnpinMessage(Token, ChannelID, MessageID);
+1 -1
View File
@@ -34,7 +34,7 @@ Method at API documentation: [pinChatMessage](https://core.telegram.org/bots/api
```bsl title="1C:Enterprise/OneScript code example"
Token = "6129457865:AAFyzNYOAFbu...";
ChannelID = "@testsichee";
MessageID = "20661";
MessageID = "21081";
Result = OPI_Telegram.PinMessage(Token, ChannelID, MessageID);
```
+1 -1
View File
@@ -34,7 +34,7 @@ Method at API documentation: [unpinChatMessage](https://core.telegram.org/bots/a
```bsl title="1C:Enterprise/OneScript code example"
Token = "6129457865:AAFyzNYOAFbu...";
ChannelID = "@testsichee";
MessageID = "20661";
MessageID = "21081";
Result = OPI_Telegram.UnpinMessage(Token, ChannelID, MessageID);
```
@@ -31,7 +31,7 @@ Method at API documentation: [getFile](https://core.telegram.org/bots/api#getfil
```bsl title="1C:Enterprise/OneScript code example"
FileID = "CQACAgIAAx0EcNsaZQACUL5oxtZxTAF37mtQa89Nqv8gbBvdbQACnYcAAmMlOUrfHJ36K_ssgzYE";
FileID = "CQACAgIAAx0EcNsaZQACUmJo1NxoX-106k_r0ejDFQLTjHkbwQACJXsAAi1mqUqQ81MjxNzPATYE";
Token = "6129457865:AAFyzNYOAFbu...";
Result = OPI_Telegram.DownloadFile(Token, FileID);
+1 -1
View File
@@ -34,7 +34,7 @@ Method at API documentation: [deleteMessage](https://core.telegram.org/bots/api#
```bsl title="1C:Enterprise/OneScript code example"
Token = "6129457865:AAFyzNYOAFbu...";
ChatID = "@testsichee";
MessageID = "20661";
MessageID = "21081";
Result = OPI_Telegram.DeleteMessage(Token, ChatID, MessageID);
```
+1 -1
View File
@@ -36,7 +36,7 @@ Method at API documentation: [forwardMessage](https://core.telegram.org/bots/api
Token = "6129457865:AAFyzNYOAFbu...";
ChatID = "461699897";
ChannelID = "@testsichee";
MessageID = "20661";
MessageID = "21081";
Result = OPI_Telegram.ForwardMessage(Token, MessageID, ChannelID, ChatID);
```
@@ -36,7 +36,7 @@ Method at API documentation: [editMessageCaption](https://core.telegram.org/bots
```bsl title="1C:Enterprise/OneScript code example"
Token = "6129457865:AAFyzNYOAFbu...";
ChatID = "461699897";
MessageID = "16306";
MessageID = "16626";
Description = "New picture description";
Result = OPI_Telegram.ReplaceMessageCaption(Token, ChatID, MessageID, Description);
@@ -35,7 +35,7 @@ Method at API documentation: [editMessageReplyMarkup](https://core.telegram.org/
```bsl title="1C:Enterprise/OneScript code example"
Token = "6129457865:AAFyzNYOAFbu...";
ChatID = "461699897";
MessageID = "16303";
MessageID = "16623";
ButtonArray = New Array;
ButtonArray.Add("New button 3");
+1 -1
View File
@@ -36,7 +36,7 @@ Method at API documentation: [editMessageText](https://core.telegram.org/bots/ap
```bsl title="1C:Enterprise/OneScript code example"
Token = "6129457865:AAFyzNYOAFbu...";
ChatID = "@testsichee";
MessageID = "20661";
MessageID = "21081";
Text = "New message text";
Result = OPI_Telegram.ReplaceMessageText(Token, ChatID, MessageID, Text);
+1
View File
@@ -0,0 +1 @@
{"Хост":"172.33.0.13","Порт":"2222","Логин":"bayselonarrend","Пароль":"12we...","ТипПрокси":"http","АдресПрокси":"127.0.0.1","ПортПрокси":8071,"ЛогинПрокси":"proxyuser","ПарольПрокси":"12we..."}
@@ -0,0 +1 @@
{"Хост":"172.33.0.13","Порт":"2222","Логин":"bayselonarrend","Пароль":"12we...","ТипПрокси":"http","АдресПрокси":"127.0.0.1","ПортПрокси":8071,"ЛогинПрокси":"proxyuser","ПарольПрокси":"12we..."}
@@ -0,0 +1 @@
{"Хост":"172.33.0.13","Порт":"2222","Логин":"bayselonarrend","Пароль":"12we...","ТипПрокси":"http","АдресПрокси":"127.0.0.1","ПортПрокси":8071,"ЛогинПрокси":"proxyuser","ПарольПрокси":"12we..."}
@@ -0,0 +1 @@
{"Хост":"172.33.0.13","Порт":"2222","Логин":"bayselonarrend","Пароль":"12we...","ТипПрокси":"http","АдресПрокси":"127.0.0.1","ПортПрокси":8071,"ЛогинПрокси":"proxyuser","ПарольПрокси":"12we..."}
@@ -0,0 +1 @@
{"Хост":"172.33.0.13","Порт":"2222","Логин":"bayselonarrend","Пароль":"12we...","ТипПрокси":"http","АдресПрокси":"127.0.0.1","ПортПрокси":8071,"ЛогинПрокси":"proxyuser","ПарольПрокси":"12we..."}
@@ -0,0 +1 @@
{"Хост":"172.33.0.13","Порт":"2222","Логин":"bayselonarrend","Пароль":"12we...","ТипПрокси":"http","АдресПрокси":"127.0.0.1","ПортПрокси":8071,"ЛогинПрокси":"proxyuser","ПарольПрокси":"12we..."}
+1
View File
@@ -0,0 +1 @@
{"Хост":"172.33.0.13","Порт":"2222","Логин":"bayselonarrend","Пароль":"12we...","ТипПрокси":"http","АдресПрокси":"127.0.0.1","ПортПрокси":8071,"ЛогинПрокси":"proxyuser","ПарольПрокси":"12we..."}
+56
View File
@@ -0,0 +1,56 @@
КартинкаПуть = "C:\pic.png";
КартинкаДД = Новый ДвоичныеДанные(Картинка);
Хост = "172.33.0.13";
Порт = "2222";
ИспользоватьПрокси = Истина;
НастройкиПрокси = Неопределено;
ВидАвторизации = "По логину и паролю";
Если ВидАвторизации = "По логину и паролю" Тогда
Логин = "bayselonarrend";
Пароль = "12we...";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
ИначеЕсли ВидАвторизации = "По ключу" Тогда
Логин = "bayselonarrend";
ПриватныйКлюч = "./ssh_key";
ПубличныйКлюч = "./ssh_key.pub";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
Иначе
Логин = "bayselonarrend";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
КонецЕсли;
Если ИспользоватьПрокси Тогда
ТипПрокси = "http"; // http, socks5, socks4
АдресПрокси = "127.0.0.1";
ПортПрокси = "8071";
ЛогинПрокси = "proxyuser";
ПарольПрокси = "12we...";
НастройкиПрокси = OPI_SFTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
КонецЕсли;
Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSSH, НастройкиПрокси);
Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
Результат = OPI_SFTP.ЗагрузитьФайл(Соединение, Картинка, "pic_from_disk.png");
Результат2 = OPI_SFTP.ЗагрузитьФайл(Соединение, КартинкаДД, "files_folder/pic_from_binary.png");
Иначе
Результат = Соединение; // Ошибка соединения
КонецЕсли;
@@ -0,0 +1,43 @@
Хост = "172.33.0.13";
Порт = "2222";
ИспользоватьПрокси = Истина;
НастройкиПрокси = Неопределено;
ВидАвторизации = "По логину и паролю";
Если ВидАвторизации = "По логину и паролю" Тогда
Логин = "bayselonarrend";
Пароль = "12we...";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
ИначеЕсли ВидАвторизации = "По ключу" Тогда
Логин = "bayselonarrend";
ПриватныйКлюч = "./ssh_key";
ПубличныйКлюч = "./ssh_key.pub";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
Иначе
Логин = "bayselonarrend";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
КонецЕсли;
Если ИспользоватьПрокси Тогда
ТипПрокси = "http"; // http, socks5, socks4
АдресПрокси = "127.0.0.1";
ПортПрокси = "8071";
ЛогинПрокси = "proxyuser";
ПарольПрокси = "12we...";
НастройкиПрокси = OPI_SFTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
КонецЕсли;
Результат = OPI_SFTP.ОткрытьСоединение(НастройкиSSH, НастройкиПрокси);
@@ -0,0 +1,49 @@
Хост = "172.33.0.13";
Порт = "2222";
ИспользоватьПрокси = Истина;
НастройкиПрокси = Неопределено;
ВидАвторизации = "По логину и паролю";
Если ВидАвторизации = "По логину и паролю" Тогда
Логин = "bayselonarrend";
Пароль = "12we...";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
ИначеЕсли ВидАвторизации = "По ключу" Тогда
Логин = "bayselonarrend";
ПриватныйКлюч = "./ssh_key";
ПубличныйКлюч = "./ssh_key.pub";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
Иначе
Логин = "bayselonarrend";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
КонецЕсли;
Если ИспользоватьПрокси Тогда
ТипПрокси = "http"; // http, socks5, socks4
АдресПрокси = "127.0.0.1";
ПортПрокси = "8071";
ЛогинПрокси = "proxyuser";
ПарольПрокси = "12we...";
НастройкиПрокси = OPI_SFTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
КонецЕсли;
Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSSH, НастройкиПрокси);
Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
Результат = OPI_SFTP.ПолучитьСписокОбъектов(Соединение, "test_folder", Истина);
Иначе
Результат = Соединение; // Ошибка соединения
КонецЕсли;
@@ -0,0 +1,49 @@
Хост = "172.33.0.13";
Порт = "2222";
ИспользоватьПрокси = Истина;
НастройкиПрокси = Неопределено;
ВидАвторизации = "По логину и паролю";
Если ВидАвторизации = "По логину и паролю" Тогда
Логин = "bayselonarrend";
Пароль = "12we...";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
ИначеЕсли ВидАвторизации = "По ключу" Тогда
Логин = "bayselonarrend";
ПриватныйКлюч = "./ssh_key";
ПубличныйКлюч = "./ssh_key.pub";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
Иначе
Логин = "bayselonarrend";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
КонецЕсли;
Если ИспользоватьПрокси Тогда
ТипПрокси = "http"; // http, socks5, socks4
АдресПрокси = "127.0.0.1";
ПортПрокси = "8071";
ЛогинПрокси = "proxyuser";
ПарольПрокси = "12we...";
НастройкиПрокси = OPI_SFTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
КонецЕсли;
Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSSH, НастройкиПрокси);
Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
Результат = OPI_SFTP.ПолучитьТекущийКаталог(Соединение);
Иначе
Результат = Соединение; // Ошибка соединения
КонецЕсли;
@@ -0,0 +1,49 @@
Хост = "172.33.0.13";
Порт = "2222";
ИспользоватьПрокси = Истина;
НастройкиПрокси = Неопределено;
ВидАвторизации = "По логину и паролю";
Если ВидАвторизации = "По логину и паролю" Тогда
Логин = "bayselonarrend";
Пароль = "12we...";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
ИначеЕсли ВидАвторизации = "По ключу" Тогда
Логин = "bayselonarrend";
ПриватныйКлюч = "./ssh_key";
ПубличныйКлюч = "./ssh_key.pub";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
Иначе
Логин = "bayselonarrend";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
КонецЕсли;
Если ИспользоватьПрокси Тогда
ТипПрокси = "http"; // http, socks5, socks4
АдресПрокси = "127.0.0.1";
ПортПрокси = "8071";
ЛогинПрокси = "proxyuser";
ПарольПрокси = "12we...";
НастройкиПрокси = OPI_SFTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
КонецЕсли;
Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSSH, НастройкиПрокси);
Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
Результат = OPI_SFTP.СоздатьНовуюДиректорию(Соединение, "new_dir");
Иначе
Результат = Соединение; // Ошибка соединения
КонецЕсли;
@@ -0,0 +1,49 @@
Хост = "172.33.0.13";
Порт = "2222";
ИспользоватьПрокси = Истина;
НастройкиПрокси = Неопределено;
ВидАвторизации = "По логину и паролю";
Если ВидАвторизации = "По логину и паролю" Тогда
Логин = "bayselonarrend";
Пароль = "12we...";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
ИначеЕсли ВидАвторизации = "По ключу" Тогда
Логин = "bayselonarrend";
ПриватныйКлюч = "./ssh_key";
ПубличныйКлюч = "./ssh_key.pub";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
Иначе
Логин = "bayselonarrend";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
КонецЕсли;
Если ИспользоватьПрокси Тогда
ТипПрокси = "http"; // http, socks5, socks4
АдресПрокси = "127.0.0.1";
ПортПрокси = "8071";
ЛогинПрокси = "proxyuser";
ПарольПрокси = "12we...";
НастройкиПрокси = OPI_SFTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
КонецЕсли;
Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSSH, НастройкиПрокси);
Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
Результат = OPI_SFTP.УдалитьДиректорию(Соединение, "new_dir");
Иначе
Результат = Соединение; // Ошибка соединения
КонецЕсли;
+49
View File
@@ -0,0 +1,49 @@
Хост = "172.33.0.13";
Порт = "2222";
ИспользоватьПрокси = Истина;
НастройкиПрокси = Неопределено;
ВидАвторизации = "По логину и паролю";
Если ВидАвторизации = "По логину и паролю" Тогда
Логин = "bayselonarrend";
Пароль = "12we...";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
ИначеЕсли ВидАвторизации = "По ключу" Тогда
Логин = "bayselonarrend";
ПриватныйКлюч = "./ssh_key";
ПубличныйКлюч = "./ssh_key.pub";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
Иначе
Логин = "bayselonarrend";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
КонецЕсли;
Если ИспользоватьПрокси Тогда
ТипПрокси = "http"; // http, socks5, socks4
АдресПрокси = "127.0.0.1";
ПортПрокси = "8071";
ЛогинПрокси = "proxyuser";
ПарольПрокси = "12we...";
НастройкиПрокси = OPI_SFTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
КонецЕсли;
Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSSH, НастройкиПрокси);
Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
Результат = OPI_SFTP.УдалитьФайл(Соединение, "files_folder/pic_from_binary.png");
Иначе
Результат = Соединение; // Ошибка соединения
КонецЕсли;
@@ -1,5 +1,5 @@
Токен = "6129457865:AAFyzNYOAFbu...";
IDКанала = "@testsichee";
IDСообщения = "20661";
IDСообщения = "21081";
Результат = OPI_Telegram.ЗакрепитьСообщение(Токен, IDКанала, IDСообщения);
@@ -1,6 +1,6 @@
Токен = "6129457865:AAFyzNYOAFbu...";
IDЧата = "461699897";
IDСообщения = "16303";
IDСообщения = "16623";
МассивКнопок = Новый Массив;
МассивКнопок.Добавить("Новая кнопка 1");
@@ -1,6 +1,6 @@
Токен = "6129457865:AAFyzNYOAFbu...";
IDЧата = "461699897";
IDСообщения = "16306";
IDСообщения = "16626";
Описание = "Новое описание картинки";
Результат = OPI_Telegram.ЗаменитьОписаниеСообщения(Токен, IDЧата, IDСообщения, Описание);
@@ -1,6 +1,6 @@
Токен = "6129457865:AAFyzNYOAFbu...";
IDЧата = "@testsichee";
IDСообщения = "20661";
IDСообщения = "21081";
Текст = "Новый текст сообщения";
Результат = OPI_Telegram.ЗаменитьТекстСообщения(Токен, IDЧата, IDСообщения, Текст);
@@ -1,5 +1,5 @@
Токен = "6129457865:AAFyzNYOAFbu...";
IDКанала = "@testsichee";
IDСообщения = "20661";
IDСообщения = "21081";
Результат = OPI_Telegram.ОткрепитьСообщение(Токен, IDКанала, IDСообщения);
@@ -1,6 +1,6 @@
Токен = "6129457865:AAFyzNYOAFbu...";
IDЧата = "461699897";
IDКанала = "@testsichee";
IDСообщения = "20661";
IDСообщения = "21081";
Результат = OPI_Telegram.ПереслатьСообщение(Токен, IDСообщения, IDКанала, IDЧата);
+1 -1
View File
@@ -1,4 +1,4 @@
IDФайла = "CQACAgIAAx0EcNsaZQACUL5oxtZxTAF37mtQa89Nqv8gbBvdbQACnYcAAmMlOUrfHJ36K_ssgzYE";
IDФайла = "CQACAgIAAx0EcNsaZQACUmJo1NxoX-106k_r0ejDFQLTjHkbwQACJXsAAi1mqUqQ81MjxNzPATYE";
Токен = "6129457865:AAFyzNYOAFbu...";
Результат = OPI_Telegram.СкачатьФайл(Токен, IDФайла);
@@ -1,5 +1,5 @@
Токен = "6129457865:AAFyzNYOAFbu...";
IDЧата = "@testsichee";
IDСообщения = "20661";
IDСообщения = "21081";
Результат = OPI_Telegram.УдалитьСообщение(Токен, IDЧата, IDСообщения);
+38
View File
@@ -0,0 +1,38 @@
---
sidebar_position: 3
description: Закрыть соединение и другие функции для работы с SFTP в Открытом пакете интеграций - бесплатной open-source библиотеке интеграций для 1С:Предприятие 8, OneScript и CLI
keywords: [1C, 1С, 1С:Предприятие, 1С:Предприятие 8.3, API, Интеграция, Сервисы, Обмен, OneScript, CLI, SFTP]
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Закрыть соединение
Явно закрывает переданное соединение
`Функция ЗакрытьСоединение(Знач Соединение) Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| Соединение | - | Произвольный | ✔ | Объект компоненты с открытым соединением |
Возвращаемое значение: Структура Из КлючИЗначение - Результат закрытия соединения
<br/>
:::caution
**NOCLI:** данный метод недоступен для использования в CLI версии
:::
<br/>
+86
View File
@@ -0,0 +1,86 @@
---
sidebar_position: 1
description: Открыть соединение и другие функции для работы с SFTP в Открытом пакете интеграций - бесплатной open-source библиотеке интеграций для 1С:Предприятие 8, OneScript и CLI
keywords: [1C, 1С, 1С:Предприятие, 1С:Предприятие 8.3, API, Интеграция, Сервисы, Обмен, OneScript, CLI, SFTP]
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Открыть соединение
Создает новый сеанс SFTP
`Функция ОткрытьСоединение(Знач НастройкиSSH, Знач Прокси = "") Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| НастройкиSSH | - | Структура Из КлючИЗначение | &#x2714; | Структура настроек соединения |
| Прокси | - | Структура Из КлючИЗначение | &#x2716; | Структура настроек прокси, если необходимо |
Возвращаемое значение: Произвольный, Соответствие Из КлючИЗначение - Открыть соединение
<br/>
:::tip
Получить конфигурацию соединения можно при помощи функций `ПолучитьНастройкиЛогинПароль`, `ПолучитьНастройкиПриватныйКлюч`, `ПолучитьНастройкиЧерезАгента`
:::
:::caution
**NOCLI:** данный метод недоступен для использования в CLI версии
:::
<br/>
```bsl title="Пример использования для 1С:Предприятие/OneScript"
Хост = "172.33.0.13";
Порт = "2222";
ИспользоватьПрокси = Истина;
НастройкиПрокси = Неопределено;
ВидАвторизации = "По логину и паролю";
Если ВидАвторизации = "По логину и паролю" Тогда
Логин = "bayselonarrend";
Пароль = "12we...";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
ИначеЕсли ВидАвторизации = "По ключу" Тогда
Логин = "bayselonarrend";
ПриватныйКлюч = "./ssh_key";
ПубличныйКлюч = "./ssh_key.pub";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
Иначе
Логин = "bayselonarrend";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
КонецЕсли;
Если ИспользоватьПрокси Тогда
ТипПрокси = "http"; // http, socks5, socks4
АдресПрокси = "127.0.0.1";
ПортПрокси = "8071";
ЛогинПрокси = "proxyuser";
ПарольПрокси = "12we...";
НастройкиПрокси = OPI_SFTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
КонецЕсли;
Результат = OPI_SFTP.ОткрытьСоединение(НастройкиSSH, НастройкиПрокси);
```
@@ -0,0 +1,40 @@
---
sidebar_position: 2
description: Получить конфигурацию соединения и другие функции для работы с SFTP в Открытом пакете интеграций - бесплатной open-source библиотеке интеграций для 1С:Предприятие 8, OneScript и CLI
keywords: [1C, 1С, 1С:Предприятие, 1С:Предприятие 8.3, API, Интеграция, Сервисы, Обмен, OneScript, CLI, SFTP]
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Получить конфигурацию соединения
Формирует полную структуру настроек соединения, которая может быть использована вместо самого соединения при вызове других функций
`Функция ПолучитьКонфигурациюСоединения(Знач НастройкиSSH, Знач Прокси = Неопределено) Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| НастройкиSSH | --set | Структура Из КлючИЗначение | &#x2714; | Настройки SSH |
| Прокси | --proxy | Структура Из КлючИЗначение | &#x2716; | Настройки прокси, если необходимо. См ПолучитьНастройкиПрокси |
Возвращаемое значение: Структура Из КлючИЗначение - Структура настроек соединения
<br/>
:::tip
Может быть передана в качестве параметра `Соединение` в других функциях вместо настоящего соединения из функции `ОткрытьСоединение`. При этом новое соединение будет открыто и закрыто в рамках вызываемой функции
Не рекомендуется использовать конфигурацию соединения при множественных обращениях к серверу SSH. Данный функционал предназначен, в первую очередь для CLI версии ОПИ, где хранение соединения между вызовами невозможно
:::
<br/>
+37
View File
@@ -0,0 +1,37 @@
---
sidebar_position: 8
description: Получить настройки прокси и другие функции для работы с SFTP в Открытом пакете интеграций - бесплатной open-source библиотеке интеграций для 1С:Предприятие 8, OneScript и CLI
keywords: [1C, 1С, 1С:Предприятие, 1С:Предприятие 8.3, API, Интеграция, Сервисы, Обмен, OneScript, CLI, SFTP]
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Получить настройки прокси
Формирует структуру настроек прокси-сервера для соединения
`Функция ПолучитьНастройкиПрокси(Знач Адрес, Знач Порт, Знач Вид = "socks5", Знач Логин = Неопределено, Знач Пароль = Неопределено) Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| Адрес | --addr | Строка | &#x2714; | Адрес прокси |
| Порт | --port | Число | &#x2714; | Порт прокси |
| Вид | --type | Строка | &#x2716; | Вид прокси: socks5, socks4, http |
| Логин | --login | Строка, Неопределено | &#x2716; | Логин авторизации, если необходимо |
| Пароль | --pass | Строка, Неопределено | &#x2716; | Пароль для авторизации, если необходимо |
Возвращаемое значение: Структура Из КлючИЗначение - Структура настроек прокси
<br/>
@@ -0,0 +1,36 @@
---
sidebar_position: 5
description: Получить настройки (логин/пароль) и другие функции для работы с SFTP в Открытом пакете интеграций - бесплатной open-source библиотеке интеграций для 1С:Предприятие 8, OneScript и CLI
keywords: [1C, 1С, 1С:Предприятие, 1С:Предприятие 8.3, API, Интеграция, Сервисы, Обмен, OneScript, CLI, SFTP]
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Получить настройки (логин/пароль)
Получает настройки соединения с авторизацией через логин и пароль
`Функция ПолучитьНастройкиЛогинПароль(Знач Хост, Знач Порт, Знач Логин, Знач Пароль = "") Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| Хост | --host | Строка | &#x2714; | Хост SSH |
| Порт | --port | Число | &#x2714; | Порт SSH |
| Логин | --user | Строка | &#x2714; | Имя пользователя SSH |
| Пароль | --pass | Строка | &#x2716; | Пароль пользователя SSH |
Возвращаемое значение: Структура Из КлючИЗначение - Конфигурация соединения
<br/>
@@ -0,0 +1,38 @@
---
sidebar_position: 6
description: Получить настройки (приватный ключ) и другие функции для работы с SFTP в Открытом пакете интеграций - бесплатной open-source библиотеке интеграций для 1С:Предприятие 8, OneScript и CLI
keywords: [1C, 1С, 1С:Предприятие, 1С:Предприятие 8.3, API, Интеграция, Сервисы, Обмен, OneScript, CLI, SFTP]
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Получить настройки (приватный ключ)
Получает настройки соединения с авторизацией через приватный ключ
`Функция ПолучитьНастройкиПриватныйКлюч(Знач Хост, Знач Порт, Знач Логин, Знач Приватный, Знач Публичный = "", Знач Пароль = "") Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| Хост | --host | Строка | &#x2714; | Хост SSH |
| Порт | --port | Число | &#x2714; | Порт SSH |
| Логин | --user | Строка | &#x2714; | Имя пользователя SSH |
| Приватный | --key | Строка | &#x2714; | Путь к файлу приватного ключа |
| Публичный | --pub | Строка | &#x2716; | Путь к файлу публичного ключ |
| Пароль | --pass | Строка | &#x2716; | Пароль (passphrase) приватного ключа |
Возвращаемое значение: Структура Из КлючИЗначение - Конфигурация соединения
<br/>
@@ -0,0 +1,35 @@
---
sidebar_position: 7
description: Получить настройки (через агента) и другие функции для работы с SFTP в Открытом пакете интеграций - бесплатной open-source библиотеке интеграций для 1С:Предприятие 8, OneScript и CLI
keywords: [1C, 1С, 1С:Предприятие, 1С:Предприятие 8.3, API, Интеграция, Сервисы, Обмен, OneScript, CLI, SFTP]
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Получить настройки (через агента)
Получает настройки соединения с авторизацией через SSH Agent
`Функция ПолучитьНастройкиЧерезАгента(Знач Хост, Знач Порт, Знач Логин) Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| Хост | --host | Строка | &#x2714; | Хост SSH |
| Порт | --port | Число | &#x2714; | Порт SSH |
| Логин | --user | Строка | &#x2714; | Имя пользователя SSH |
Возвращаемое значение: Структура Из КлючИЗначение - Конфигурация соединения
<br/>
+38
View File
@@ -0,0 +1,38 @@
---
sidebar_position: 4
description: Это коннектор и другие функции для работы с SFTP в Открытом пакете интеграций - бесплатной open-source библиотеке интеграций для 1С:Предприятие 8, OneScript и CLI
keywords: [1C, 1С, 1С:Предприятие, 1С:Предприятие 8.3, API, Интеграция, Сервисы, Обмен, OneScript, CLI, SFTP]
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Это коннектор
Проверяет, что значение является объектом внешней компоненты для работы с SFTP
`Функция ЭтоКоннектор(Знач Значение) Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| Значение | - | Произвольный | &#x2714; | Значение для проверки |
Возвращаемое значение: Булево - Это коннектор
<br/>
:::caution
**NOCLI:** данный метод недоступен для использования в CLI версии
:::
<br/>
+4
View File
@@ -0,0 +1,4 @@
{
"label": "Основные методы",
"position": "2"
}
@@ -0,0 +1,85 @@
---
sidebar_position: 2
description: Создать новую директорию и другие функции для работы с SFTP в Открытом пакете интеграций - бесплатной open-source библиотеке интеграций для 1С:Предприятие 8, OneScript и CLI
keywords: [1C, 1С, 1С:Предприятие, 1С:Предприятие 8.3, API, Интеграция, Сервисы, Обмен, OneScript, CLI, SFTP]
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Создать новую директорию
Создает директорию по указанному пути
`Функция СоздатьНовуюДиректорию(Знач Соединение, Знач Путь, Знач Права = 700) Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| Соединение | --conn | Произвольный | &#x2714; | Существующее соединение или конфигурация соединения |
| Путь | --path | Строка | &#x2714; | Путь к новой директории |
| Права | --mode | Строка | &#x2716; | Режим доступа к каталогу в числовом формате POSIX (как в chmod) |
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат обработки
<br/>
```bsl title="Пример использования для 1С:Предприятие/OneScript"
Хост = "172.33.0.13";
Порт = "2222";
ИспользоватьПрокси = Истина;
НастройкиПрокси = Неопределено;
ВидАвторизации = "По логину и паролю";
Если ВидАвторизации = "По логину и паролю" Тогда
Логин = "bayselonarrend";
Пароль = "12we...";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
ИначеЕсли ВидАвторизации = "По ключу" Тогда
Логин = "bayselonarrend";
ПриватныйКлюч = "./ssh_key";
ПубличныйКлюч = "./ssh_key.pub";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
Иначе
Логин = "bayselonarrend";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
КонецЕсли;
Если ИспользоватьПрокси Тогда
ТипПрокси = "http"; // http, socks5, socks4
АдресПрокси = "127.0.0.1";
ПортПрокси = "8071";
ЛогинПрокси = "proxyuser";
ПарольПрокси = "12we...";
НастройкиПрокси = OPI_SFTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
КонецЕсли;
Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSSH, НастройкиПрокси);
Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
Результат = OPI_SFTP.СоздатьНовуюДиректорию(Соединение, "new_dir");
Иначе
Результат = Соединение; // Ошибка соединения
КонецЕсли;
```
@@ -0,0 +1,84 @@
---
sidebar_position: 3
description: Удалить директорию и другие функции для работы с SFTP в Открытом пакете интеграций - бесплатной open-source библиотеке интеграций для 1С:Предприятие 8, OneScript и CLI
keywords: [1C, 1С, 1С:Предприятие, 1С:Предприятие 8.3, API, Интеграция, Сервисы, Обмен, OneScript, CLI, SFTP]
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Удалить директорию
Удаляет существующую директорию
`Функция УдалитьДиректорию(Знач Соединение, Знач Путь) Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| Соединение | --conn | Произвольный | &#x2714; | Существующее соединение или конфигурация соединения |
| Путь | --path | Строка | &#x2714; | Путь к удаляемой директории |
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат обработки
<br/>
```bsl title="Пример использования для 1С:Предприятие/OneScript"
Хост = "172.33.0.13";
Порт = "2222";
ИспользоватьПрокси = Истина;
НастройкиПрокси = Неопределено;
ВидАвторизации = "По логину и паролю";
Если ВидАвторизации = "По логину и паролю" Тогда
Логин = "bayselonarrend";
Пароль = "12we...";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
ИначеЕсли ВидАвторизации = "По ключу" Тогда
Логин = "bayselonarrend";
ПриватныйКлюч = "./ssh_key";
ПубличныйКлюч = "./ssh_key.pub";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
Иначе
Логин = "bayselonarrend";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
КонецЕсли;
Если ИспользоватьПрокси Тогда
ТипПрокси = "http"; // http, socks5, socks4
АдресПрокси = "127.0.0.1";
ПортПрокси = "8071";
ЛогинПрокси = "proxyuser";
ПарольПрокси = "12we...";
НастройкиПрокси = OPI_SFTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
КонецЕсли;
Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSSH, НастройкиПрокси);
Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
Результат = OPI_SFTP.УдалитьДиректорию(Соединение, "new_dir");
Иначе
Результат = Соединение; // Ошибка соединения
КонецЕсли;
```
@@ -0,0 +1,83 @@
---
sidebar_position: 4
description: Получить текущий каталог и другие функции для работы с SFTP в Открытом пакете интеграций - бесплатной open-source библиотеке интеграций для 1С:Предприятие 8, OneScript и CLI
keywords: [1C, 1С, 1С:Предприятие, 1С:Предприятие 8.3, API, Интеграция, Сервисы, Обмен, OneScript, CLI, SFTP]
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Получить текущий каталог
Получает текущий каталог, от которого вычисляются относительные пути
`Функция ПолучитьТекущийКаталог(Знач Соединение) Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| Соединение | --conn | Произвольный | &#x2714; | Существующее соединение или конфигурация соединения |
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат обработки
<br/>
```bsl title="Пример использования для 1С:Предприятие/OneScript"
Хост = "172.33.0.13";
Порт = "2222";
ИспользоватьПрокси = Истина;
НастройкиПрокси = Неопределено;
ВидАвторизации = "По логину и паролю";
Если ВидАвторизации = "По логину и паролю" Тогда
Логин = "bayselonarrend";
Пароль = "12we...";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
ИначеЕсли ВидАвторизации = "По ключу" Тогда
Логин = "bayselonarrend";
ПриватныйКлюч = "./ssh_key";
ПубличныйКлюч = "./ssh_key.pub";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
Иначе
Логин = "bayselonarrend";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
КонецЕсли;
Если ИспользоватьПрокси Тогда
ТипПрокси = "http"; // http, socks5, socks4
АдресПрокси = "127.0.0.1";
ПортПрокси = "8071";
ЛогинПрокси = "proxyuser";
ПарольПрокси = "12we...";
НастройкиПрокси = OPI_SFTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
КонецЕсли;
Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSSH, НастройкиПрокси);
Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
Результат = OPI_SFTP.ПолучитьТекущийКаталог(Соединение);
Иначе
Результат = Соединение; // Ошибка соединения
КонецЕсли;
```
+89
View File
@@ -0,0 +1,89 @@
---
sidebar_position: 1
description: Получить список объектов и другие функции для работы с SFTP в Открытом пакете интеграций - бесплатной open-source библиотеке интеграций для 1С:Предприятие 8, OneScript и CLI
keywords: [1C, 1С, 1С:Предприятие, 1С:Предприятие 8.3, API, Интеграция, Сервисы, Обмен, OneScript, CLI, SFTP]
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Получить список объектов
Получает информацию о содержимом директории по выбранному пути
`Функция ПолучитьСписокОбъектов(Знач Соединение, Знач Путь = "", Знач Рекурсивно = Ложь) Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| Соединение | --conn | Произвольный | &#x2714; | Существующее соединение или конфигурация соединения |
| Путь | --path | Строка | &#x2716; | Путь к директории поиска |
| Рекурсивно | --rcv | Булево | &#x2716; | Получать информацию об объектах во вложенных директориях |
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат обработки
<br/>
:::tip
Команда FTP: `LIST`
:::
<br/>
```bsl title="Пример использования для 1С:Предприятие/OneScript"
Хост = "172.33.0.13";
Порт = "2222";
ИспользоватьПрокси = Истина;
НастройкиПрокси = Неопределено;
ВидАвторизации = "По логину и паролю";
Если ВидАвторизации = "По логину и паролю" Тогда
Логин = "bayselonarrend";
Пароль = "12we...";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
ИначеЕсли ВидАвторизации = "По ключу" Тогда
Логин = "bayselonarrend";
ПриватныйКлюч = "./ssh_key";
ПубличныйКлюч = "./ssh_key.pub";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
Иначе
Логин = "bayselonarrend";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
КонецЕсли;
Если ИспользоватьПрокси Тогда
ТипПрокси = "http"; // http, socks5, socks4
АдресПрокси = "127.0.0.1";
ПортПрокси = "8071";
ЛогинПрокси = "proxyuser";
ПарольПрокси = "12we...";
НастройкиПрокси = OPI_SFTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
КонецЕсли;
Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSSH, НастройкиПрокси);
Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
Результат = OPI_SFTP.ПолучитьСписокОбъектов(Соединение, "test_folder", Истина);
Иначе
Результат = Соединение; // Ошибка соединения
КонецЕсли;
```
+4
View File
@@ -0,0 +1,4 @@
{
"label": "Работа с директориями",
"position": "3"
}
+88
View File
@@ -0,0 +1,88 @@
---
sidebar_position: 2
description: Удалить файл и другие функции для работы с SFTP в Открытом пакете интеграций - бесплатной open-source библиотеке интеграций для 1С:Предприятие 8, OneScript и CLI
keywords: [1C, 1С, 1С:Предприятие, 1С:Предприятие 8.3, API, Интеграция, Сервисы, Обмен, OneScript, CLI, SFTP]
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Удалить файл
Удаляет файл с сервера
`Функция УдалитьФайл(Знач Соединение, Знач Путь) Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| Соединение | --conn | Произвольный | &#x2714; | Существующее соединение или конфигурация соединения |
| Путь | --path | Строка | &#x2714; | Путь сохранения файла на сервере |
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат обработки
<br/>
:::tip
Команда FTP: `DELE`
:::
<br/>
```bsl title="Пример использования для 1С:Предприятие/OneScript"
Хост = "172.33.0.13";
Порт = "2222";
ИспользоватьПрокси = Истина;
НастройкиПрокси = Неопределено;
ВидАвторизации = "По логину и паролю";
Если ВидАвторизации = "По логину и паролю" Тогда
Логин = "bayselonarrend";
Пароль = "12we...";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
ИначеЕсли ВидАвторизации = "По ключу" Тогда
Логин = "bayselonarrend";
ПриватныйКлюч = "./ssh_key";
ПубличныйКлюч = "./ssh_key.pub";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
Иначе
Логин = "bayselonarrend";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
КонецЕсли;
Если ИспользоватьПрокси Тогда
ТипПрокси = "http"; // http, socks5, socks4
АдресПрокси = "127.0.0.1";
ПортПрокси = "8071";
ЛогинПрокси = "proxyuser";
ПарольПрокси = "12we...";
НастройкиПрокси = OPI_SFTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
КонецЕсли;
Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSSH, НастройкиПрокси);
Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
Результат = OPI_SFTP.УдалитьФайл(Соединение, "files_folder/pic_from_binary.png");
Иначе
Результат = Соединение; // Ошибка соединения
КонецЕсли;
```
+96
View File
@@ -0,0 +1,96 @@
---
sidebar_position: 1
description: Загрузить файл и другие функции для работы с SFTP в Открытом пакете интеграций - бесплатной open-source библиотеке интеграций для 1С:Предприятие 8, OneScript и CLI
keywords: [1C, 1С, 1С:Предприятие, 1С:Предприятие 8.3, API, Интеграция, Сервисы, Обмен, OneScript, CLI, SFTP]
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Загрузить файл
Загружает файл с диска или двоичные данные на сервер
`Функция ЗагрузитьФайл(Знач Соединение, Знач Файл, Знач Путь) Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| Соединение | --conn | Произвольный | &#x2714; | Существующее соединение или конфигурация соединения |
| Файл | --file | Строка, ДвоичныеДанные | &#x2714; | Файл на диске или данные файла |
| Путь | --path | Строка | &#x2714; | Путь сохранения файла на сервере |
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат обработки
<br/>
:::tip
Параметры с типом данных Двоичные данные могут принимать также пути к файлам на диске и URL
:::
<br/>
```bsl title="Пример использования для 1С:Предприятие/OneScript"
КартинкаПуть = "C:\pic.png";
КартинкаДД = Новый ДвоичныеДанные(Картинка);
Хост = "172.33.0.13";
Порт = "2222";
ИспользоватьПрокси = Истина;
НастройкиПрокси = Неопределено;
ВидАвторизации = "По логину и паролю";
Если ВидАвторизации = "По логину и паролю" Тогда
Логин = "bayselonarrend";
Пароль = "12we...";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
ИначеЕсли ВидАвторизации = "По ключу" Тогда
Логин = "bayselonarrend";
ПриватныйКлюч = "./ssh_key";
ПубличныйКлюч = "./ssh_key.pub";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
Иначе
Логин = "bayselonarrend";
НастройкиSSH = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
КонецЕсли;
Если ИспользоватьПрокси Тогда
ТипПрокси = "http"; // http, socks5, socks4
АдресПрокси = "127.0.0.1";
ПортПрокси = "8071";
ЛогинПрокси = "proxyuser";
ПарольПрокси = "12we...";
НастройкиПрокси = OPI_SFTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
КонецЕсли;
Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSSH, НастройкиПрокси);
Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
Результат = OPI_SFTP.ЗагрузитьФайл(Соединение, Картинка, "pic_from_disk.png");
Результат2 = OPI_SFTP.ЗагрузитьФайл(Соединение, КартинкаДД, "files_folder/pic_from_binary.png");
Иначе
Результат = Соединение; // Ошибка соединения
КонецЕсли;
```
+4
View File
@@ -0,0 +1,4 @@
{
"label": "Работа с файлами",
"position": "4"
}
+1 -1
View File
@@ -34,7 +34,7 @@ import TabItem from '@theme/TabItem';
```bsl title="Пример использования для 1С:Предприятие/OneScript"
Токен = "6129457865:AAFyzNYOAFbu...";
IDКанала = "@testsichee";
IDСообщения = "20661";
IDСообщения = "21081";
Результат = OPI_Telegram.ЗакрепитьСообщение(Токен, IDКанала, IDСообщения);
```
+1 -1
View File
@@ -34,7 +34,7 @@ import TabItem from '@theme/TabItem';
```bsl title="Пример использования для 1С:Предприятие/OneScript"
Токен = "6129457865:AAFyzNYOAFbu...";
IDКанала = "@testsichee";
IDСообщения = "20661";
IDСообщения = "21081";
Результат = OPI_Telegram.ОткрепитьСообщение(Токен, IDКанала, IDСообщения);
```
@@ -31,7 +31,7 @@ import TabItem from '@theme/TabItem';
```bsl title="Пример использования для 1С:Предприятие/OneScript"
IDФайла = "CQACAgIAAx0EcNsaZQACUL5oxtZxTAF37mtQa89Nqv8gbBvdbQACnYcAAmMlOUrfHJ36K_ssgzYE";
IDФайла = "CQACAgIAAx0EcNsaZQACUmJo1NxoX-106k_r0ejDFQLTjHkbwQACJXsAAi1mqUqQ81MjxNzPATYE";
Токен = "6129457865:AAFyzNYOAFbu...";
Результат = OPI_Telegram.СкачатьФайл(Токен, IDФайла);
+1 -1
View File
@@ -34,7 +34,7 @@ import TabItem from '@theme/TabItem';
```bsl title="Пример использования для 1С:Предприятие/OneScript"
Токен = "6129457865:AAFyzNYOAFbu...";
IDЧата = "@testsichee";
IDСообщения = "20661";
IDСообщения = "21081";
Результат = OPI_Telegram.УдалитьСообщение(Токен, IDЧата, IDСообщения);
```
+1 -1
View File
@@ -36,7 +36,7 @@ import TabItem from '@theme/TabItem';
Токен = "6129457865:AAFyzNYOAFbu...";
IDЧата = "461699897";
IDКанала = "@testsichee";
IDСообщения = "20661";
IDСообщения = "21081";
Результат = OPI_Telegram.ПереслатьСообщение(Токен, IDСообщения, IDКанала, IDЧата);
```
@@ -36,7 +36,7 @@ import TabItem from '@theme/TabItem';
```bsl title="Пример использования для 1С:Предприятие/OneScript"
Токен = "6129457865:AAFyzNYOAFbu...";
IDЧата = "461699897";
IDСообщения = "16306";
IDСообщения = "16626";
Описание = "Новое описание картинки";
Результат = OPI_Telegram.ЗаменитьОписаниеСообщения(Токен, IDЧата, IDСообщения, Описание);
@@ -35,7 +35,7 @@ import TabItem from '@theme/TabItem';
```bsl title="Пример использования для 1С:Предприятие/OneScript"
Токен = "6129457865:AAFyzNYOAFbu...";
IDЧата = "461699897";
IDСообщения = "16303";
IDСообщения = "16623";
МассивКнопок = Новый Массив;
МассивКнопок.Добавить("Новая кнопка 1");
+1 -1
View File
@@ -36,7 +36,7 @@ import TabItem from '@theme/TabItem';
```bsl title="Пример использования для 1С:Предприятие/OneScript"
Токен = "6129457865:AAFyzNYOAFbu...";
IDЧата = "@testsichee";
IDСообщения = "20661";
IDСообщения = "21081";
Текст = "Новый текст сообщения";
Результат = OPI_Telegram.ЗаменитьТекстСообщения(Токен, IDЧата, IDСообщения, Текст);
+8868 -8868
View File
File diff suppressed because it is too large Load Diff
+35
View File
@@ -6353,5 +6353,40 @@
"lib": "SSH",
"name": "ExecuteCommand",
"variant": ""
},
{
"lib": "SFTP",
"name": "CreateConnection",
"variant": ""
},
{
"lib": "SFTP",
"name": "CreateNewDirectory",
"variant": ""
},
{
"lib": "SFTP",
"name": "DeleteDirectory",
"variant": ""
},
{
"lib": "SFTP",
"name": "GetCurrentDirectory",
"variant": ""
},
{
"lib": "SFTP",
"name": "ListObjects",
"variant": ""
},
{
"lib": "SFTP",
"name": "UploadFile",
"variant": ""
},
{
"lib": "SFTP",
"name": "DeleteFile",
"variant": ""
}
]
+35
View File
@@ -6353,5 +6353,40 @@
"lib": "SSH",
"name": "ВыполнитьКоманду",
"variant": ""
},
{
"lib": "SFTP",
"name": "ОткрытьСоединение",
"variant": ""
},
{
"lib": "SFTP",
"name": "СоздатьНовуюДиректорию",
"variant": ""
},
{
"lib": "SFTP",
"name": "УдалитьДиректорию",
"variant": ""
},
{
"lib": "SFTP",
"name": "ПолучитьТекущийКаталог",
"variant": ""
},
{
"lib": "SFTP",
"name": "ПолучитьСписокОбъектов",
"variant": ""
},
{
"lib": "SFTP",
"name": "ЗагрузитьФайл",
"variant": ""
},
{
"lib": "SFTP",
"name": "УдалитьФайл",
"variant": ""
}
]
+1 -16
View File
@@ -448,23 +448,8 @@ Function GetProxySettings(Val Address
, Val Login = Undefined
, Val Password = Undefined) Export
SettingsStructure = New Structure;
OPI_Tools.AddField("server" , Address, "String" , SettingsStructure);
OPI_Tools.AddField("port" , Port , "Number" , SettingsStructure);
OPI_Tools.AddField("proxy_type", View , "String" , SettingsStructure);
If Not Login = Undefined Then
OPI_TypeConversion.GetLine(Login);
SettingsStructure.Insert("login", Login);
EndIf;
If Not Password = Undefined Then
OPI_TypeConversion.GetLine(Password);
SettingsStructure.Insert("password", Password);
EndIf;
//@skip-check constructor-function-return-section
Return SettingsStructure;
Return OPI_AddIns.GetProxySettings(Address, Port, View, Login, Password);
EndFunction
+9 -16
View File
@@ -133,6 +133,14 @@ Function ExecuteCommand(Val Connection, Val Command) Export
Result = Connection.Execute(Command);
Result = OPI_Tools.JsonToStructure(Result);
Output = Result["stdout"];
If Output <> Undefined Then
If StrEndsWith(Output, Chars.LF) Then
Result["stdout"] = Left(Output, StrLen(Output) - 1);
EndIf;
EndIf;
EndIf;
If CloseConnection Then
@@ -288,23 +296,8 @@ Function GetProxySettings(Val Address
, Val Login = Undefined
, Val Password = Undefined) Export
SettingsStructure = New Structure;
OPI_Tools.AddField("server" , Address, "String" , SettingsStructure);
OPI_Tools.AddField("port" , Port , "Number" , SettingsStructure);
OPI_Tools.AddField("proxy_type", View , "String" , SettingsStructure);
If Not Login = Undefined Then
OPI_TypeConversion.GetLine(Login);
SettingsStructure.Insert("login", Login);
EndIf;
If Not Password = Undefined Then
OPI_TypeConversion.GetLine(Password);
SettingsStructure.Insert("password", Password);
EndIf;
//@skip-check constructor-function-return-section
Return SettingsStructure;
Return OPI_AddIns.GetProxySettings(Address, Port, View, Login, Password);
EndFunction
+1
View File
@@ -20,6 +20,7 @@
<module name="OPI_RCON" file="core/Modules/OPI_RCON.os"/>
<module name="OPI_ReportPortal" file="core/Modules/OPI_ReportPortal.os"/>
<module name="OPI_S3" file="core/Modules/OPI_S3.os"/>
<module name="OPI_SFTP" file="core/Modules/OPI_SFTP.os"/>
<module name="OPI_Slack" file="core/Modules/OPI_Slack.os"/>
<module name="OPI_SQLite" file="core/Modules/OPI_SQLite.os"/>
<module name="OPI_SSH" file="core/Modules/OPI_SSH.os"/>
+555
View File
@@ -2964,6 +2964,56 @@ EndProcedure
#EndRegion
#Region SFTP
Procedure SF_CommonMethods() Export
OptionArray = OPI_TestDataRetrieval.GetSSHParameterOptions();
For Each TestParameters In OptionArray Do
SFTP_CreateConnection(TestParameters);
EndDo;
OPI_Tools.RemoveFileWithTry(OptionArray[0]["SSH_Key"], "Error deleting file after test");
EndProcedure
Procedure SF_DirectoryManagement() Export
OptionArray = OPI_TestDataRetrieval.GetSSHParameterOptions();
For Each TestParameters In OptionArray Do
SFTP_GetCurrentDirectory(TestParameters);
SFTP_ListObjects(TestParameters);
SFTP_CreateNewDirectory(TestParameters);
SFTP_DeleteDirectory(TestParameters);
EndDo;
OPI_Tools.RemoveFileWithTry(OptionArray[0]["SSH_Key"], "Error deleting file after test");
EndProcedure
Procedure SF_FileManagement() Export
OptionArray = OPI_TestDataRetrieval.GetSSHParameterOptions();
For Each TestParameters In OptionArray Do
SFTP_UploadFile(TestParameters);
SFTP_DeleteFile(TestParameters);
EndDo;
OPI_Tools.RemoveFileWithTry(OptionArray[0]["SSH_Key"], "Error deleting file after test");
EndProcedure
#EndRegion
#EndRegion
#EndRegion
@@ -22904,6 +22954,511 @@ EndProcedure
#EndRegion
#Region SFTP
Procedure SFTP_CreateConnection(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Result = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
// END
Process(Result, "SFTP", "CreateConnection", Postfix);
EndProcedure
Procedure SFTP_CreateNewDirectory(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Connection = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
If OPI_SFTP.IsConnector(Connection) Then
Result = OPI_SFTP.CreateNewDirectory(Connection, "new_dir");
Else
Result = Connection; // Error of connection
EndIf;
// END
Process(Result, "SFTP", "CreateNewDirectory", Postfix);
EndProcedure
Procedure SFTP_DeleteDirectory(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Connection = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
If OPI_SFTP.IsConnector(Connection) Then
Result = OPI_SFTP.DeleteDirectory(Connection, "new_dir");
Else
Result = Connection; // Error of connection
EndIf;
// END
Process(Result, "SFTP", "DeleteDirectory", Postfix);
EndProcedure
Procedure SFTP_GetCurrentDirectory(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Connection = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
If OPI_SFTP.IsConnector(Connection) Then
Result = OPI_SFTP.GetCurrentDirectory(Connection);
Else
Result = Connection; // Error of connection
EndIf;
// END
Process(Result, "SFTP", "GetCurrentDirectory", Postfix);
EndProcedure
Procedure SFTP_ListObjects(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Connection = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
If OPI_SFTP.IsConnector(Connection) Then
Result = OPI_SFTP.ListObjects(Connection, "test_folder", True);
Else
Result = Connection; // Error of connection
EndIf;
// END
Process(Result, "SFTP", "ListObjects", Postfix);
Result = OPI_SFTP.ListObjects(Connection, "test_folder");
Process(Result, "SFTP", "ListObjects", Postfix + ", No recursion");
EndProcedure
Procedure SFTP_UploadFile(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
ImagePath = "C:\pic.png";
Image = FunctionParameters["Picture"]; // SKIP
TFN = GetTempFileName("png"); // SKIP
CopyFile(Image, TFN); // SKIP
Image = TFN; // SKIP
ImageDD = New BinaryData(Image);
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Connection = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
If OPI_SFTP.IsConnector(Connection) Then
Result = OPI_SFTP.UploadFile(Connection, Image, "pic_from_disk.png");
Result2 = OPI_SFTP.UploadFile(Connection, ImageDD, "files_folder/pic_from_binary.png");
Else
Result = Connection; // Error of connection
EndIf;
// END
Process(Result , "SFTP", "UploadFile", Postfix , ImageDD.Size());
Process(Result2, "SFTP", "UploadFile", "Binary, " + Postfix, ImageDD.Size());
For N = 1 To 7 Do
Result = OPI_SFTP.UploadFile(Connection, Image, "pic_from_disk.png");
Result2 = OPI_SFTP.UploadFile(Connection, ImageDD, "files_folder/pic_from_binary.png");
If Not Result["result"] Then
Process(Result, "SFTP", "UploadFile", "Multiple, " + Postfix, ImageDD.Size());
EndIf;
If Not Result2["result"] Then
Process(Result2, "SFTP", "UploadFile", "Multiple, binary, " + Postfix, ImageDD.Size());
EndIf;
EndDo;
OPI_Tools.RemoveFileWithTry(TFN, "Failed to delete the temporary file after the test!");
EndProcedure
Procedure SFTP_DeleteFile(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Connection = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
If OPI_SFTP.IsConnector(Connection) Then
Result = OPI_SFTP.DeleteFile(Connection, "files_folder/pic_from_binary.png");
Else
Result = Connection; // Error of connection
EndIf;
// END
Process(Result , "SFTP", "DeleteFile", Postfix);
Result = OPI_SFTP.DeleteFile(Connection, "files_folder/pic_from_binary.png");
Process(Result , "SFTP", "DeleteFile", "Nonexistent, " + Postfix);
Result = OPI_SFTP.ListObjects(Connection, "files_folder", True);
Process(Result , "SFTP", "DeleteFile", "Check, " + Postfix);
EndProcedure
#EndRegion
#EndRegion
#EndRegion
+555
View File
@@ -2965,6 +2965,56 @@ EndProcedure
#EndRegion
#Region SFTP
Procedure SF_CommonMethods() Export
OptionArray = OPI_TestDataRetrieval.GetSSHParameterOptions();
For Each TestParameters In OptionArray Do
SFTP_CreateConnection(TestParameters);
EndDo;
OPI_Tools.RemoveFileWithTry(OptionArray[0]["SSH_Key"], "Error deleting file after test");
EndProcedure
Procedure SF_DirectoryManagement() Export
OptionArray = OPI_TestDataRetrieval.GetSSHParameterOptions();
For Each TestParameters In OptionArray Do
SFTP_GetCurrentDirectory(TestParameters);
SFTP_ListObjects(TestParameters);
SFTP_CreateNewDirectory(TestParameters);
SFTP_DeleteDirectory(TestParameters);
EndDo;
OPI_Tools.RemoveFileWithTry(OptionArray[0]["SSH_Key"], "Error deleting file after test");
EndProcedure
Procedure SF_FileManagement() Export
OptionArray = OPI_TestDataRetrieval.GetSSHParameterOptions();
For Each TestParameters In OptionArray Do
SFTP_UploadFile(TestParameters);
SFTP_DeleteFile(TestParameters);
EndDo;
OPI_Tools.RemoveFileWithTry(OptionArray[0]["SSH_Key"], "Error deleting file after test");
EndProcedure
#EndRegion
#EndRegion
#EndRegion
@@ -30134,6 +30184,511 @@ EndProcedure
#EndRegion
#Region SFTP
Procedure SFTP_CreateConnection(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Result = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
// END
Process(Result, "SFTP", "CreateConnection", Postfix);
EndProcedure
Procedure SFTP_CreateNewDirectory(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Connection = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
If OPI_SFTP.IsConnector(Connection) Then
Result = OPI_SFTP.CreateNewDirectory(Connection, "new_dir");
Else
Result = Connection; // Error of connection
EndIf;
// END
Process(Result, "SFTP", "CreateNewDirectory", Postfix);
EndProcedure
Procedure SFTP_DeleteDirectory(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Connection = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
If OPI_SFTP.IsConnector(Connection) Then
Result = OPI_SFTP.DeleteDirectory(Connection, "new_dir");
Else
Result = Connection; // Error of connection
EndIf;
// END
Process(Result, "SFTP", "DeleteDirectory", Postfix);
EndProcedure
Procedure SFTP_GetCurrentDirectory(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Connection = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
If OPI_SFTP.IsConnector(Connection) Then
Result = OPI_SFTP.GetCurrentDirectory(Connection);
Else
Result = Connection; // Error of connection
EndIf;
// END
Process(Result, "SFTP", "GetCurrentDirectory", Postfix);
EndProcedure
Procedure SFTP_ListObjects(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Connection = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
If OPI_SFTP.IsConnector(Connection) Then
Result = OPI_SFTP.ListObjects(Connection, "test_folder", True);
Else
Result = Connection; // Error of connection
EndIf;
// END
Process(Result, "SFTP", "ListObjects", Postfix);
Result = OPI_SFTP.ListObjects(Connection, "test_folder");
Process(Result, "SFTP", "ListObjects", Postfix + ", No recursion");
EndProcedure
Procedure SFTP_UploadFile(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
ImagePath = "C:\pic.png";
Image = FunctionParameters["Picture"]; // SKIP
TFN = GetTempFileName("png"); // SKIP
CopyFile(Image, TFN); // SKIP
Image = TFN; // SKIP
ImageDD = New BinaryData(Image);
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Connection = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
If OPI_SFTP.IsConnector(Connection) Then
Result = OPI_SFTP.UploadFile(Connection, Image, "pic_from_disk.png");
Result2 = OPI_SFTP.UploadFile(Connection, ImageDD, "files_folder/pic_from_binary.png");
Else
Result = Connection; // Error of connection
EndIf;
// END
Process(Result , "SFTP", "UploadFile", Postfix , ImageDD.Size());
Process(Result2, "SFTP", "UploadFile", "Binary, " + Postfix, ImageDD.Size());
For N = 1 To 7 Do
Result = OPI_SFTP.UploadFile(Connection, Image, "pic_from_disk.png");
Result2 = OPI_SFTP.UploadFile(Connection, ImageDD, "files_folder/pic_from_binary.png");
If Not Result["result"] Then
Process(Result, "SFTP", "UploadFile", "Multiple, " + Postfix, ImageDD.Size());
EndIf;
If Not Result2["result"] Then
Process(Result2, "SFTP", "UploadFile", "Multiple, binary, " + Postfix, ImageDD.Size());
EndIf;
EndDo;
OPI_Tools.RemoveFileWithTry(TFN, "Failed to delete the temporary file after the test!");
EndProcedure
Procedure SFTP_DeleteFile(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Connection = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
If OPI_SFTP.IsConnector(Connection) Then
Result = OPI_SFTP.DeleteFile(Connection, "files_folder/pic_from_binary.png");
Else
Result = Connection; // Error of connection
EndIf;
// END
Process(Result , "SFTP", "DeleteFile", Postfix);
Result = OPI_SFTP.DeleteFile(Connection, "files_folder/pic_from_binary.png");
Process(Result , "SFTP", "DeleteFile", "Nonexistent, " + Postfix);
Result = OPI_SFTP.ListObjects(Connection, "files_folder", True);
Process(Result , "SFTP", "DeleteFile", "Check, " + Postfix);
EndProcedure
#EndRegion
#EndRegion
#EndRegion
+30
View File
@@ -112,6 +112,32 @@ Function GetTlsSettings(Val DisableCertVerification, Val CertFilepath = "") Expo
EndFunction
Function GetProxySettings(Val Address
, Val Port
, Val View = "socks5"
, Val Login = Undefined
, Val Password = Undefined) Export
SettingsStructure = New Structure;
OPI_Tools.AddField("server" , Address, "String" , SettingsStructure);
OPI_Tools.AddField("port" , Port , "Number" , SettingsStructure);
OPI_Tools.AddField("proxy_type", View , "String" , SettingsStructure);
If Not Login = Undefined Then
OPI_TypeConversion.GetLine(Login);
SettingsStructure.Insert("login", Login);
EndIf;
If Not Password = Undefined Then
OPI_TypeConversion.GetLine(Password);
SettingsStructure.Insert("password", Password);
EndIf;
//@skip-check constructor-function-return-section
Return SettingsStructure;
EndFunction
Function FileTransferRequired() Export
// Components in 1C on Linux cannot reliably send and receive data larger than 30 KB
@@ -267,6 +293,10 @@ Function ПолучитьНастройкиTls(Val ОтключитьПрове
Return GetTlsSettings(ОтключитьПроверкуСертификатов, ПутьКСертификату);
EndFunction
Function ПолучитьНастройкиПрокси(Val Адрес, Val Порт, Val Вид = "socks5", Val Логин = Undefined, Val Пароль = Undefined) Export
Return GetProxySettings(Адрес, Порт, Вид, Логин, Пароль);
EndFunction
Function ТребуетсяПередачаЧерезФайл() Export
Return FileTransferRequired();
EndFunction
+118
View File
@@ -137,6 +137,7 @@ Function GetTestingSectionMapping() Export
Sections.Insert("Twitter" , 4);
Sections.Insert("FTP" , 5);
Sections.Insert("SSH" , 5);
Sections.Insert("SFTP" , 5);
Sections.Insert("PostgreSQL" , 5);
Sections.Insert("MySQL" , 5);
Sections.Insert("MSSQL" , 5);
@@ -181,6 +182,7 @@ Function GetTestingSectionMappingGA() Export
Sections.Insert("Twitter" , StandardDependencies);
Sections.Insert("FTP" , StandardDependencies);
Sections.Insert("SSH" , StandardDependencies);
Sections.Insert("SFTP" , StandardDependencies);
Sections.Insert("PostgreSQL" , StandardDependencies);
Sections.Insert("MySQL" , StandardDependencies);
Sections.Insert("MSSQL" , StandardDependencies);
@@ -248,6 +250,7 @@ Function GetTestTable() Export
FTP = "FTP";
RPortal = "ReportPortal";
SSH = "SSH";
SFTP = "SFTP";
TestTable = New ValueTable;
TestTable.Columns.Add("Method");
@@ -418,6 +421,9 @@ Function GetTestTable() Export
NewTest(TestTable, "FT_CommonMethods" , "Common methods" , FTP);
NewTest(TestTable, "RPortal_Authorization" , "Authorization" , RPortal);
NewTest(TestTable, "SShell_CommonMethods" , "Common methods" , SSH);
NewTest(TestTable, "SF_CommonMethods" , "Common methods" , SFTP);
NewTest(TestTable, "SF_DirectoryManagement" , "Directory management" , SFTP);
NewTest(TestTable, "SF_FileManagement" , "Files management" , SFTP);
Return TestTable;
@@ -1065,6 +1071,8 @@ Function GetSSHParameterOptions() Export
OptionArray = New Array;
TestParametersMain = New Structure;
ParameterToCollection("Picture" , TestParametersMain);
ParameterToCollection("Big" , TestParametersMain);
ParameterToCollection("SSH_Host" , TestParametersMain);
ParameterToCollection("SSH_Port" , TestParametersMain);
ParameterToCollection("SSH_User" , TestParametersMain);
@@ -11367,6 +11375,116 @@ Function Check_SSH_ExecuteCommand(Val Result, Val Option)
EndFunction
Function Check_SFTP_CreateConnection(Val Result, Val Option)
Result = String(TypeOf(Result));
ExpectsThat(Result).Равно("AddIn.OPI_SSH.Main");
If StrFind(Option, "HTTP") Then
OPI_Tools.Pause(2);
EndIf;
Return Result;
EndFunction
Function Check_SFTP_CreateNewDirectory(Val Result, Val Option)
ExpectsThat(Result["result"]).Равно(True);
Return Result;
EndFunction
Function Check_SFTP_DeleteDirectory(Val Result, Val Option)
ExpectsThat(Result["result"]).Равно(True);
Return Result;
EndFunction
Function Check_SFTP_GetCurrentDirectory(Val Result, Val Option)
ExpectsThat(Result["result"]).Равно(True);
ExpectsThat(Result["path"]).Заполнено();
Return Result;
EndFunction
Function Check_SFTP_ListObjects(Val Result, Val Option)
ExpectsThat(Result["result"]).Равно(True);
ExpectsThat(Result["data"]).ИмеетТип("Array").Заполнено();
ExpectsThat(Result["data"][0]["uid"]).Заполнено();
ExpectsThat(Result["data"][0]["is_directory"]).Равно(True);
If StrFind(Option, "No recursion") = 0 Then
ExpectsThat(Result["data"][0]["objects"].Count()).Равно(3);
ExpectsThat(Result["data"][0]["objects"][1]["objects"].Count()).Равно(1);
ExpectsThat(Result["data"][0]["objects"][2]["objects"].Count()).Равно(2);
ExpectsThat(Result["data"][0]["objects"][0]["objects"]).Равно(Undefined);
Else
ExpectsThat(Result["data"][0]["objects"]).Равно(Undefined);
EndIf;
Return Result;
EndFunction
Function Check_SFTP_ChangeCurrentDirectory(Val Result, Val Option)
ExpectsThat(Result["result"]).Равно(True);
If StrFind(Option, "Check") > 0 Then
ExpectsThat(Result["path"]).Равно("/config/test_folder");
EndIf;
Return Result;
EndFunction
Function Check_SFTP_UploadFile(Val Result, Val Option, Size = "")
ExpectsThat(Result["bytes"]).Равно(Size);
If Not StrFind(Option, "Size 1") > 0 Or StrFind(Option, "Size 2") > 0 Then
ExpectsThat(Result["result"]).Равно(True);
EndIf;
Return Result;
EndFunction
Function Check_SFTP_DeleteFile(Val Result, Val Option)
If StrFind(Option, "Nonexistent") > 0 Then
ExpectsThat(Result["result"]).Равно(False);
ElsIf StrFind(Option, "Check") > 0 Then
ExpectsThat(Result["result"]).Равно(True);
ExpectsThat(Result["data"]).ИмеетТип("Array").ИмеетДлину(1);
Else
ExpectsThat(Result["result"]).Равно(True);
EndIf;
Return Result;
EndFunction
#EndRegion
#Region ReportPortal
+26
View File
@@ -112,6 +112,32 @@ Function GetTlsSettings(Val DisableCertVerification, Val CertFilepath = "") Expo
EndFunction
Function GetProxySettings(Val Address
, Val Port
, Val View = "socks5"
, Val Login = Undefined
, Val Password = Undefined) Export
SettingsStructure = New Structure;
OPI_Tools.AddField("server" , Address, "String" , SettingsStructure);
OPI_Tools.AddField("port" , Port , "Number" , SettingsStructure);
OPI_Tools.AddField("proxy_type", View , "String" , SettingsStructure);
If Not Login = Undefined Then
OPI_TypeConversion.GetLine(Login);
SettingsStructure.Insert("login", Login);
EndIf;
If Not Password = Undefined Then
OPI_TypeConversion.GetLine(Password);
SettingsStructure.Insert("password", Password);
EndIf;
//@skip-check constructor-function-return-section
Return SettingsStructure;
EndFunction
Function FileTransferRequired() Export
// Components in 1C on Linux cannot reliably send and receive data larger than 30 KB
+1 -16
View File
@@ -448,23 +448,8 @@ Function GetProxySettings(Val Address
, Val Login = Undefined
, Val Password = Undefined) Export
SettingsStructure = New Structure;
OPI_Tools.AddField("server" , Address, "String" , SettingsStructure);
OPI_Tools.AddField("port" , Port , "Number" , SettingsStructure);
OPI_Tools.AddField("proxy_type", View , "String" , SettingsStructure);
If Not Login = Undefined Then
OPI_TypeConversion.GetLine(Login);
SettingsStructure.Insert("login", Login);
EndIf;
If Not Password = Undefined Then
OPI_TypeConversion.GetLine(Password);
SettingsStructure.Insert("password", Password);
EndIf;
//@skip-check constructor-function-return-section
Return SettingsStructure;
Return OPI_AddIns.GetProxySettings(Address, Port, View, Login, Password);
EndFunction
+527
View File
@@ -0,0 +1,527 @@
// OneScript: ./OInt/core/Modules/OPI_SFTP.os
// Lib: SFTP
// CLI: sftp
// Keywords: sftp
// MIT License
// Copyright (c) 2023-2025 Anton Tsitavets
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
// https://github.com/Bayselonarrend/OpenIntegrations
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
// BSLLS:NumberOfOptionalParams-off
// BSLLS:UsingServiceTag-off
// BSLLS:LineLength-off
// BSLLS:UsingSynchronousCalls-off
//@skip-check module-structure-top-region
//@skip-check module-structure-method-in-regions
//@skip-check wrong-string-literal-content
//@skip-check method-too-many-params
//@skip-check constructor-function-return-section
#Region Public
#Region CommonMethods
// Create Connection !NOCLI
// Creates a new SFTP session
//
// Note
// Get the connection configuration using the functions `GetSettingsLoginPassword`,^^
// `GetSettingsPrivateKey`, `GetSettingsViaAgent`
//
// Parameters:
// SSHSettings - Structure Of KeyAndValue - Connection settings structure - set
// Proxy - Structure Of KeyAndValue - Proxy settings structure, if necessary - proxy
//
// Returns:
// Arbitrary, Map of KeyAndValue - Create Connection
Function CreateConnection(Val SSHSettings, Val Proxy = "") Export
SSHConnection = OPI_SSH.CreateConnection(SSHSettings, Proxy);
If OPI_SSH.IsConnector(SSHConnection) Then
Result = SSHConnection.ToSFTP();
Result = OPI_Tools.JsonToStructure(Result);
Else
Return SSHConnection;
EndIf;
Return ?(Result["result"], SSHConnection, Result);
EndFunction
// Get connection configuration
// Forms a complete structure of connection settings that can be used instead of the actual connection when calling other functions
//
// Note
// Can be passed as the `Connection` parameter in other functions instead of the actual connection from the `CreateConnection` function.
// At the same time, a new connection will be opened and closed within the called function
// It is not recommended to use the connection configuration for multiple requests to the SSH server.^^
// This functionality is primarily intended for the CLI version of OInt, where maintaining a connection between calls is not possible
//
// Parameters:
// SSHSettings - Structure Of KeyAndValue - SSH settings - set
// Proxy - Structure Of KeyAndValue - Proxy settings, if required. See GetProxySettings - proxy
//
// Returns:
// Structure Of KeyAndValue - Connection settings structure
Function GetConnectionConfiguration(Val SSHSettings, Val Proxy = Undefined) Export
Return OPI_SSH.GetConnectionConfiguration(SSHSettings, Proxy);
EndFunction
// Close connection !NOCLI
// Explicitly closes the passed connection
//
// Parameters:
// Connection - Arbitrary - AddIn object with open connection - conn
//
// Returns:
// Structure Of KeyAndValue - Result of connection termination
Function CloseConnection(Val Connection) Export
Return OPI_SSH.CloseConnection(Connection);
EndFunction
// Is connector !NOCLI
// Checks that the value is an object of an external component for working with SFTP
//
// Parameters:
// Value - Arbitrary - Value to check - value
//
// Returns:
// Boolean - Is connector
Function IsConnector(Val Value) Export
Return OPI_SSH.IsConnector(Value);
EndFunction
// Get settings (login/password)
// Gets connection settings with login and password authentication
//
// Parameters:
// Host - String - SSH host - host
// Port - Number - SSH port - port
// Login - String - SSH username - user
// Password - String - SSH user password - pass
//
// Returns:
// Structure Of KeyAndValue - Connection configuration
Function GetSettingsLoginPassword(Val Host, Val Port, Val Login, Val Password = "") Export
Return OPI_SSH.GetSettingsLoginPassword(Host, Port, Login, Password);
EndFunction
// Get settings (private key)
// Gets connection settings with private key authentication
//
// Parameters:
// Host - String - SSH host - host
// Port - Number - SSH port - port
// Login - String - SSH username - user
// Private - String - Path to private key file - key
// Public - String - Path to public key file - pub
// Password - String - Private key password (passphrase) - pass
//
// Returns:
// Structure Of KeyAndValue - Connection configuration
Function GetSettingsPrivateKey(Val Host
, Val Port
, Val Login
, Val Private
, Val Public = ""
, Val Password = "") Export
Return OPI_SSH.GetSettingsPrivateKey(Host, Port, Login, Private, Public, Password);
EndFunction
// Get settings (via agent)
// Gets connection settings with SSH Agent authentication
//
// Parameters:
// Host - String - SSH host - host
// Port - Number - SSH port - port
// Login - String - SSH username - user
//
// Returns:
// Structure Of KeyAndValue - Connection configuration
Function GetSettingsViaAgent(Val Host, Val Port, Val Login) Export
Return OPI_SSH.GetSettingsViaAgent(Host, Port, Login);
EndFunction
// Get proxy settings
// Creates a structure of proxy server settings for the connection
//
// Parameters:
// Address - String - Proxy address - addr
// Port - Number - Proxy port - port
// View - String - Proxy type: socks5, socks4, http - type
// Login - String, Undefined - Authorization login, if required - login
// Password - String, Undefined - Authorization password, if required - pass
//
// Returns:
// Structure Of KeyAndValue - Proxy settings structure
Function GetProxySettings(Val Address
, Val Port
, Val View = "socks5"
, Val Login = Undefined
, Val Password = Undefined) Export
//@skip-check constructor-function-return-section
Return OPI_AddIns.GetProxySettings(Address, Port, View, Login, Password);
EndFunction
#EndRegion
#Region DirectoryManagement
// List objects
// Gets information about the contents of a directory at the specified path
//
// Note
// FTP Command: `LIST`
//
// Parameters:
// Connection - Arbitrary - Existing connection or connection configuration - conn
// Path - String - Path to search directory - path
// Recursively - Boolean - Get information about objects in nested directories - rcv
//
// Returns:
// Map Of KeyAndValue - Processing result
Function ListObjects(Val Connection, Val Path = "", Val Recursively = False) Export
CloseConnection = CheckCreateConnection(Connection);
If Not IsConnector(Connection) Then
Return Connection;
Else
OPI_TypeConversion.GetBoolean(Recursively);
OPI_TypeConversion.GetLine(Path);
Result = Connection.ListDirectory(Path);
Result = OPI_Tools.JsonToStructure(Result);
If Result["result"] And Recursively Then
For Each DirectoryObject In Result["data"] Do
If Not DirectoryObject["is_directory"] Then
Continue;
EndIf;
Child = ListObjects(Connection, DirectoryObject["path"], True);
If Child["result"] Then
DirectoryObject.Insert("objects", Child["data"]);
Else
DirectoryObject.Insert("objects", Child["error"]);
EndIf;
EndDo;
EndIf;
EndIf;
If CloseConnection Then
Result.Insert("close_connection", CloseConnection(Connection));
EndIf;
Return Result;
EndFunction
// Create new directory
// Creates a directory at the specified path
//
// Parameters:
// Connection - Arbitrary - Existing connection or connection configuration - conn
// Path - String - Path to new directory - path
// Permissions - String - Access mode to the directory in POSIX numeric format (as in chmod) - mode
//
// Returns:
// Map Of KeyAndValue - Processing result
Function CreateNewDirectory(Val Connection, Val Path, Val Permissions = 700) Export
CloseConnection = CheckCreateConnection(Connection);
If Not IsConnector(Connection) Then
Return Connection;
Else
OPI_TypeConversion.GetLine(Path);
Result = Connection.MakeDirectory(Path, Permissions);
Result = OPI_Tools.JsonToStructure(Result);
EndIf;
If CloseConnection Then
Result.Insert("close_connection", CloseConnection(Connection));
EndIf;
Return Result;
EndFunction
// Delete directory
// Deletes an existing directory
//
// Parameters:
// Connection - Arbitrary - Existing connection or connection configuration - conn
// Path - String - Path to directory to delete - path
//
// Returns:
// Map Of KeyAndValue - Processing result
Function DeleteDirectory(Val Connection, Val Path) Export
CloseConnection = CheckCreateConnection(Connection);
If Not IsConnector(Connection) Then
Return Connection;
Else
OPI_TypeConversion.GetLine(Path);
Result = Connection.RemoveDirectory(Path);
Result = OPI_Tools.JsonToStructure(Result);
EndIf;
If CloseConnection Then
Result.Insert("close_connection", CloseConnection(Connection));
EndIf;
Return Result;
EndFunction
// Get current directory
// Gets the current directory from which relative paths are calculated
//
//
// Parameters:
// Connection - Arbitrary - Existing connection or connection configuration - conn
//
// Returns:
// Map Of KeyAndValue - Processing result
Function GetCurrentDirectory(Val Connection) Export
CloseConnection = CheckCreateConnection(Connection);
If Not IsConnector(Connection) Then
Return Connection;
Else
Result = OPI_SSH.ExecuteCommand(Connection, "pwd");
ProcessSSHCommandExecution(Result, "path");
EndIf;
If CloseConnection Then
Result.Insert("close_connection", CloseConnection(Connection));
EndIf;
Return Result;
EndFunction
#EndRegion
#Region FileManagement
// Upload file
// Uploads a file from disk or binary data to the server
//
//
// Parameters:
// Connection - Arbitrary - Existing connection or connection configuration - conn
// File - String, BinaryData - File on disk or file data - file
// Path - String - Path to save file on server - path
//
// Returns:
// Map Of KeyAndValue - Processing result
Function UploadFile(Val Connection, Val File, Val Path) Export
CloseConnection = CheckCreateConnection(Connection);
If Not IsConnector(Connection) Then
Return Connection;
Else
If TypeOf(File) = Type("String") Then
FileOnDisk = New File(File);
IsFileOnDisk = FileOnDisk.Exists();
Else
IsFileOnDisk = False;
EndIf;
If Not IsFileOnDisk Then
OPI_TypeConversion.GetBinaryData(File);
If OPI_AddIns.FileTransferRequired() Then
// BSLLS:MissingTemporaryFileDeletion-off
//@skip-check missing-temporary-file-deletion
TFN = GetTempFileName();
// BSLLS:MissingTemporaryFileDeletion-on
File.Write(TFN);
Result = Connection.UploadFile(TFN, Path);
OPI_Tools.RemoveFileWithTry(TFN, "Failed to delete temporary file after upload");
Else
Result = Connection.UploadData(File, Path);
EndIf;
Else
Result = Connection.UploadFile(File, Path);
EndIf;
Result = OPI_Tools.JsonToStructure(Result);
EndIf;
If CloseConnection Then
Result.Insert("close_connection", CloseConnection(Connection));
EndIf;
Return Result;
EndFunction
// Delete file
// Delete file from server
//
// Note
// FTP Command: `DELE`
//
// Parameters:
// Connection - Arbitrary - Existing connection or connection configuration - conn
// Path - String - Path to save file on server - path
//
// Returns:
// Map Of KeyAndValue - Processing result
Function DeleteFile(Val Connection, Val Path) Export
CloseConnection = CheckCreateConnection(Connection);
If Not IsConnector(Connection) Then
Return Connection;
Else
OPI_TypeConversion.GetLine(Path);
Result = Connection.RemoveFile(Path);
Result = OPI_Tools.JsonToStructure(Result);
EndIf;
If CloseConnection Then
Result.Insert("close_connection", CloseConnection(Connection));
EndIf;
Return Result;
EndFunction
#EndRegion
#EndRegion
#Region Internal
Function CheckCreateConnection(Connection)
If Not IsConnector(Connection) Then
CloseConnection = True;
Connection = CreateConnection(Connection);
Else
CloseConnection = False;
EndIf;
IsSFTP = Connection.IsSFTP();
If Not IsSFTP Then
Result = Connection.ToSFTP();
Result = OPI_Tools.JsonToStructure(Result);
Connection = ?(Result["result"], Connection, Result);
EndIf;
Return CloseConnection;
EndFunction
Procedure ProcessSSHCommandExecution(Result, ResultField = "data")
If Result["result"] Then
Result_ = New Map;
If Not ValueIsFilled(Result["stderr"]) Then
Result_.Insert("result", True);
StdOut = Result["stdout"];
If ValueIsFilled(StdOut) Then
Result_.Insert(ResultField, StdOut);
EndIf;
Else
Result_.Insert("result", False);
Result_.Insert("error" , Result["stderr"]);
EndIf;
Result = Result_;
EndIf;
EndProcedure
#EndRegion
+12
View File
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="72aa8b08-1537-461e-954d-0b657275c31d">
<name>OPI_SFTP</name>
<synonym>
<key>en</key>
<value>SFTP (OpenIntegrations)</value>
</synonym>
<comment>Module for working with SFTP from the OpenIntegrations package</comment>
<server>true</server>
<externalConnection>true</externalConnection>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
</mdclass:CommonModule>
+9 -16
View File
@@ -133,6 +133,14 @@ Function ExecuteCommand(Val Connection, Val Command) Export
Result = Connection.Execute(Command);
Result = OPI_Tools.JsonToStructure(Result);
Output = Result["stdout"];
If Output <> Undefined Then
If StrEndsWith(Output, Chars.LF) Then
Result["stdout"] = Left(Output, StrLen(Output) - 1);
EndIf;
EndIf;
EndIf;
If CloseConnection Then
@@ -288,23 +296,8 @@ Function GetProxySettings(Val Address
, Val Login = Undefined
, Val Password = Undefined) Export
SettingsStructure = New Structure;
OPI_Tools.AddField("server" , Address, "String" , SettingsStructure);
OPI_Tools.AddField("port" , Port , "Number" , SettingsStructure);
OPI_Tools.AddField("proxy_type", View , "String" , SettingsStructure);
If Not Login = Undefined Then
OPI_TypeConversion.GetLine(Login);
SettingsStructure.Insert("login", Login);
EndIf;
If Not Password = Undefined Then
OPI_TypeConversion.GetLine(Password);
SettingsStructure.Insert("password", Password);
EndIf;
//@skip-check constructor-function-return-section
Return SettingsStructure;
Return OPI_AddIns.GetProxySettings(Address, Port, View, Login, Password);
EndFunction
@@ -137,6 +137,7 @@ Function GetTestingSectionMapping() Export
Sections.Insert("Twitter" , 4);
Sections.Insert("FTP" , 5);
Sections.Insert("SSH" , 5);
Sections.Insert("SFTP" , 5);
Sections.Insert("PostgreSQL" , 5);
Sections.Insert("MySQL" , 5);
Sections.Insert("MSSQL" , 5);
@@ -181,6 +182,7 @@ Function GetTestingSectionMappingGA() Export
Sections.Insert("Twitter" , StandardDependencies);
Sections.Insert("FTP" , StandardDependencies);
Sections.Insert("SSH" , StandardDependencies);
Sections.Insert("SFTP" , StandardDependencies);
Sections.Insert("PostgreSQL" , StandardDependencies);
Sections.Insert("MySQL" , StandardDependencies);
Sections.Insert("MSSQL" , StandardDependencies);
@@ -248,6 +250,7 @@ Function GetTestTable() Export
FTP = "FTP";
RPortal = "ReportPortal";
SSH = "SSH";
SFTP = "SFTP";
TestTable = New ValueTable;
TestTable.Columns.Add("Method");
@@ -418,6 +421,9 @@ Function GetTestTable() Export
NewTest(TestTable, "FT_CommonMethods" , "Common methods" , FTP);
NewTest(TestTable, "RPortal_Authorization" , "Authorization" , RPortal);
NewTest(TestTable, "SShell_CommonMethods" , "Common methods" , SSH);
NewTest(TestTable, "SF_CommonMethods" , "Common methods" , SFTP);
NewTest(TestTable, "SF_DirectoryManagement" , "Directory management" , SFTP);
NewTest(TestTable, "SF_FileManagement" , "Files management" , SFTP);
Return TestTable;
@@ -1065,6 +1071,8 @@ Function GetSSHParameterOptions() Export
OptionArray = New Array;
TestParametersMain = New Structure;
ParameterToCollection("Picture" , TestParametersMain);
ParameterToCollection("Big" , TestParametersMain);
ParameterToCollection("SSH_Host" , TestParametersMain);
ParameterToCollection("SSH_Port" , TestParametersMain);
ParameterToCollection("SSH_User" , TestParametersMain);
@@ -11367,6 +11375,116 @@ Function Check_SSH_ExecuteCommand(Val Result, Val Option)
EndFunction
Function Check_SFTP_CreateConnection(Val Result, Val Option)
Result = String(TypeOf(Result));
ExpectsThat(Result).Равно("AddIn.OPI_SSH.Main");
If StrFind(Option, "HTTP") Then
OPI_Tools.Pause(2);
EndIf;
Return Result;
EndFunction
Function Check_SFTP_CreateNewDirectory(Val Result, Val Option)
ExpectsThat(Result["result"]).Равно(True);
Return Result;
EndFunction
Function Check_SFTP_DeleteDirectory(Val Result, Val Option)
ExpectsThat(Result["result"]).Равно(True);
Return Result;
EndFunction
Function Check_SFTP_GetCurrentDirectory(Val Result, Val Option)
ExpectsThat(Result["result"]).Равно(True);
ExpectsThat(Result["path"]).Заполнено();
Return Result;
EndFunction
Function Check_SFTP_ListObjects(Val Result, Val Option)
ExpectsThat(Result["result"]).Равно(True);
ExpectsThat(Result["data"]).ИмеетТип("Array").Заполнено();
ExpectsThat(Result["data"][0]["uid"]).Заполнено();
ExpectsThat(Result["data"][0]["is_directory"]).Равно(True);
If StrFind(Option, "No recursion") = 0 Then
ExpectsThat(Result["data"][0]["objects"].Count()).Равно(3);
ExpectsThat(Result["data"][0]["objects"][1]["objects"].Count()).Равно(1);
ExpectsThat(Result["data"][0]["objects"][2]["objects"].Count()).Равно(2);
ExpectsThat(Result["data"][0]["objects"][0]["objects"]).Равно(Undefined);
Else
ExpectsThat(Result["data"][0]["objects"]).Равно(Undefined);
EndIf;
Return Result;
EndFunction
Function Check_SFTP_ChangeCurrentDirectory(Val Result, Val Option)
ExpectsThat(Result["result"]).Равно(True);
If StrFind(Option, "Check") > 0 Then
ExpectsThat(Result["path"]).Равно("/config/test_folder");
EndIf;
Return Result;
EndFunction
Function Check_SFTP_UploadFile(Val Result, Val Option, Size = "")
ExpectsThat(Result["bytes"]).Равно(Size);
If Not StrFind(Option, "Size 1") > 0 Or StrFind(Option, "Size 2") > 0 Then
ExpectsThat(Result["result"]).Равно(True);
EndIf;
Return Result;
EndFunction
Function Check_SFTP_DeleteFile(Val Result, Val Option)
If StrFind(Option, "Nonexistent") > 0 Then
ExpectsThat(Result["result"]).Равно(False);
ElsIf StrFind(Option, "Check") > 0 Then
ExpectsThat(Result["result"]).Равно(True);
ExpectsThat(Result["data"]).ИмеетТип("Array").ИмеетДлину(1);
Else
ExpectsThat(Result["result"]).Равно(True);
EndIf;
Return Result;
EndFunction
#EndRegion
#Region ReportPortal
+555
View File
@@ -2964,6 +2964,56 @@ EndProcedure
#EndRegion
#Region SFTP
Procedure SF_CommonMethods() Export
OptionArray = OPI_TestDataRetrieval.GetSSHParameterOptions();
For Each TestParameters In OptionArray Do
SFTP_CreateConnection(TestParameters);
EndDo;
OPI_Tools.RemoveFileWithTry(OptionArray[0]["SSH_Key"], "Error deleting file after test");
EndProcedure
Procedure SF_DirectoryManagement() Export
OptionArray = OPI_TestDataRetrieval.GetSSHParameterOptions();
For Each TestParameters In OptionArray Do
SFTP_GetCurrentDirectory(TestParameters);
SFTP_ListObjects(TestParameters);
SFTP_CreateNewDirectory(TestParameters);
SFTP_DeleteDirectory(TestParameters);
EndDo;
OPI_Tools.RemoveFileWithTry(OptionArray[0]["SSH_Key"], "Error deleting file after test");
EndProcedure
Procedure SF_FileManagement() Export
OptionArray = OPI_TestDataRetrieval.GetSSHParameterOptions();
For Each TestParameters In OptionArray Do
SFTP_UploadFile(TestParameters);
SFTP_DeleteFile(TestParameters);
EndDo;
OPI_Tools.RemoveFileWithTry(OptionArray[0]["SSH_Key"], "Error deleting file after test");
EndProcedure
#EndRegion
#EndRegion
#EndRegion
@@ -22905,6 +22955,511 @@ EndProcedure
#EndRegion
#Region SFTP
Procedure SFTP_CreateConnection(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Result = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
// END
Process(Result, "SFTP", "CreateConnection", Postfix);
EndProcedure
Procedure SFTP_CreateNewDirectory(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Connection = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
If OPI_SFTP.IsConnector(Connection) Then
Result = OPI_SFTP.CreateNewDirectory(Connection, "new_dir");
Else
Result = Connection; // Error of connection
EndIf;
// END
Process(Result, "SFTP", "CreateNewDirectory", Postfix);
EndProcedure
Procedure SFTP_DeleteDirectory(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Connection = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
If OPI_SFTP.IsConnector(Connection) Then
Result = OPI_SFTP.DeleteDirectory(Connection, "new_dir");
Else
Result = Connection; // Error of connection
EndIf;
// END
Process(Result, "SFTP", "DeleteDirectory", Postfix);
EndProcedure
Procedure SFTP_GetCurrentDirectory(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Connection = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
If OPI_SFTP.IsConnector(Connection) Then
Result = OPI_SFTP.GetCurrentDirectory(Connection);
Else
Result = Connection; // Error of connection
EndIf;
// END
Process(Result, "SFTP", "GetCurrentDirectory", Postfix);
EndProcedure
Procedure SFTP_ListObjects(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Connection = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
If OPI_SFTP.IsConnector(Connection) Then
Result = OPI_SFTP.ListObjects(Connection, "test_folder", True);
Else
Result = Connection; // Error of connection
EndIf;
// END
Process(Result, "SFTP", "ListObjects", Postfix);
Result = OPI_SFTP.ListObjects(Connection, "test_folder");
Process(Result, "SFTP", "ListObjects", Postfix + ", No recursion");
EndProcedure
Procedure SFTP_UploadFile(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
ImagePath = "C:\pic.png";
Image = FunctionParameters["Picture"]; // SKIP
TFN = GetTempFileName("png"); // SKIP
FileCopy(Image, TFN); // SKIP
Image = TFN; // SKIP
ImageDD = New BinaryData(Image);
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Connection = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
If OPI_SFTP.IsConnector(Connection) Then
Result = OPI_SFTP.UploadFile(Connection, Image, "pic_from_disk.png");
Result2 = OPI_SFTP.UploadFile(Connection, ImageDD, "files_folder/pic_from_binary.png");
Else
Result = Connection; // Error of connection
EndIf;
// END
Process(Result , "SFTP", "UploadFile", Postfix , ImageDD.Size());
Process(Result2, "SFTP", "UploadFile", "Binary, " + Postfix, ImageDD.Size());
For N = 1 To 7 Do
Result = OPI_SFTP.UploadFile(Connection, Image, "pic_from_disk.png");
Result2 = OPI_SFTP.UploadFile(Connection, ImageDD, "files_folder/pic_from_binary.png");
If Not Result["result"] Then
Process(Result, "SFTP", "UploadFile", "Multiple, " + Postfix, ImageDD.Size());
EndIf;
If Not Result2["result"] Then
Process(Result2, "SFTP", "UploadFile", "Multiple, binary, " + Postfix, ImageDD.Size());
EndIf;
EndDo;
OPI_Tools.RemoveFileWithTry(TFN, "Failed to delete the temporary file after the test!");
EndProcedure
Procedure SFTP_DeleteFile(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Connection = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
If OPI_SFTP.IsConnector(Connection) Then
Result = OPI_SFTP.DeleteFile(Connection, "files_folder/pic_from_binary.png");
Else
Result = Connection; // Error of connection
EndIf;
// END
Process(Result , "SFTP", "DeleteFile", Postfix);
Result = OPI_SFTP.DeleteFile(Connection, "files_folder/pic_from_binary.png");
Process(Result , "SFTP", "DeleteFile", "Nonexistent, " + Postfix);
Result = OPI_SFTP.ListObjects(Connection, "files_folder", True);
Process(Result , "SFTP", "DeleteFile", "Check, " + Postfix);
EndProcedure
#EndRegion
#EndRegion
#EndRegion
+555
View File
@@ -2965,6 +2965,56 @@ EndProcedure
#EndRegion
#Region SFTP
Procedure SF_CommonMethods() Export
OptionArray = OPI_TestDataRetrieval.GetSSHParameterOptions();
For Each TestParameters In OptionArray Do
SFTP_CreateConnection(TestParameters);
EndDo;
OPI_Tools.RemoveFileWithTry(OptionArray[0]["SSH_Key"], "Error deleting file after test");
EndProcedure
Procedure SF_DirectoryManagement() Export
OptionArray = OPI_TestDataRetrieval.GetSSHParameterOptions();
For Each TestParameters In OptionArray Do
SFTP_GetCurrentDirectory(TestParameters);
SFTP_ListObjects(TestParameters);
SFTP_CreateNewDirectory(TestParameters);
SFTP_DeleteDirectory(TestParameters);
EndDo;
OPI_Tools.RemoveFileWithTry(OptionArray[0]["SSH_Key"], "Error deleting file after test");
EndProcedure
Procedure SF_FileManagement() Export
OptionArray = OPI_TestDataRetrieval.GetSSHParameterOptions();
For Each TestParameters In OptionArray Do
SFTP_UploadFile(TestParameters);
SFTP_DeleteFile(TestParameters);
EndDo;
OPI_Tools.RemoveFileWithTry(OptionArray[0]["SSH_Key"], "Error deleting file after test");
EndProcedure
#EndRegion
#EndRegion
#EndRegion
@@ -30134,6 +30184,511 @@ EndProcedure
#EndRegion
#Region SFTP
Procedure SFTP_CreateConnection(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Result = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
// END
Process(Result, "SFTP", "CreateConnection", Postfix);
EndProcedure
Procedure SFTP_CreateNewDirectory(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Connection = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
If OPI_SFTP.IsConnector(Connection) Then
Result = OPI_SFTP.CreateNewDirectory(Connection, "new_dir");
Else
Result = Connection; // Error of connection
EndIf;
// END
Process(Result, "SFTP", "CreateNewDirectory", Postfix);
EndProcedure
Procedure SFTP_DeleteDirectory(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Connection = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
If OPI_SFTP.IsConnector(Connection) Then
Result = OPI_SFTP.DeleteDirectory(Connection, "new_dir");
Else
Result = Connection; // Error of connection
EndIf;
// END
Process(Result, "SFTP", "DeleteDirectory", Postfix);
EndProcedure
Procedure SFTP_GetCurrentDirectory(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Connection = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
If OPI_SFTP.IsConnector(Connection) Then
Result = OPI_SFTP.GetCurrentDirectory(Connection);
Else
Result = Connection; // Error of connection
EndIf;
// END
Process(Result, "SFTP", "GetCurrentDirectory", Postfix);
EndProcedure
Procedure SFTP_ListObjects(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Connection = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
If OPI_SFTP.IsConnector(Connection) Then
Result = OPI_SFTP.ListObjects(Connection, "test_folder", True);
Else
Result = Connection; // Error of connection
EndIf;
// END
Process(Result, "SFTP", "ListObjects", Postfix);
Result = OPI_SFTP.ListObjects(Connection, "test_folder");
Process(Result, "SFTP", "ListObjects", Postfix + ", No recursion");
EndProcedure
Procedure SFTP_UploadFile(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
ImagePath = "C:\pic.png";
Image = FunctionParameters["Picture"]; // SKIP
TFN = GetTempFileName("png"); // SKIP
FileCopy(Image, TFN); // SKIP
Image = TFN; // SKIP
ImageDD = New BinaryData(Image);
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Connection = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
If OPI_SFTP.IsConnector(Connection) Then
Result = OPI_SFTP.UploadFile(Connection, Image, "pic_from_disk.png");
Result2 = OPI_SFTP.UploadFile(Connection, ImageDD, "files_folder/pic_from_binary.png");
Else
Result = Connection; // Error of connection
EndIf;
// END
Process(Result , "SFTP", "UploadFile", Postfix , ImageDD.Size());
Process(Result2, "SFTP", "UploadFile", "Binary, " + Postfix, ImageDD.Size());
For N = 1 To 7 Do
Result = OPI_SFTP.UploadFile(Connection, Image, "pic_from_disk.png");
Result2 = OPI_SFTP.UploadFile(Connection, ImageDD, "files_folder/pic_from_binary.png");
If Not Result["result"] Then
Process(Result, "SFTP", "UploadFile", "Multiple, " + Postfix, ImageDD.Size());
EndIf;
If Not Result2["result"] Then
Process(Result2, "SFTP", "UploadFile", "Multiple, binary, " + Postfix, ImageDD.Size());
EndIf;
EndDo;
OPI_Tools.RemoveFileWithTry(TFN, "Failed to delete the temporary file after the test!");
EndProcedure
Procedure SFTP_DeleteFile(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
SSHSettings = OPI_SFTP.GetSettingsLoginPassword(Host, Port, Login, Password);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SFTP.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SFTP.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
ProxySettings = OPI_SFTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
EndIf;
Connection = OPI_SFTP.CreateConnection(SSHSettings, ProxySettings);
If OPI_SFTP.IsConnector(Connection) Then
Result = OPI_SFTP.DeleteFile(Connection, "files_folder/pic_from_binary.png");
Else
Result = Connection; // Error of connection
EndIf;
// END
Process(Result , "SFTP", "DeleteFile", Postfix);
Result = OPI_SFTP.DeleteFile(Connection, "files_folder/pic_from_binary.png");
Process(Result , "SFTP", "DeleteFile", "Nonexistent, " + Postfix);
Result = OPI_SFTP.ListObjects(Connection, "files_folder", True);
Process(Result , "SFTP", "DeleteFile", "Check, " + Postfix);
EndProcedure
#EndRegion
#EndRegion
#EndRegion
+1
View File
@@ -73,6 +73,7 @@
<commonModules>CommonModule.OPI_PostgreSQL</commonModules>
<commonModules>CommonModule.OPI_RCON</commonModules>
<commonModules>CommonModule.OPI_ReportPortal</commonModules>
<commonModules>CommonModule.OPI_SFTP</commonModules>
<commonModules>CommonModule.OPI_Slack</commonModules>
<commonModules>CommonModule.OPI_SQLite</commonModules>
<commonModules>CommonModule.OPI_SSH</commonModules>
+1 -16
View File
@@ -448,23 +448,8 @@
, Знач Логин = Неопределено
, Знач Пароль = Неопределено) Экспорт
СтруктураНастроек = Новый Структура;
OPI_Инструменты.ДобавитьПоле("server" , Адрес, "Строка", СтруктураНастроек);
OPI_Инструменты.ДобавитьПоле("port" , Порт , "Число" , СтруктураНастроек);
OPI_Инструменты.ДобавитьПоле("proxy_type", Вид , "Строка", СтруктураНастроек);
Если Не Логин = Неопределено Тогда
OPI_ПреобразованиеТипов.ПолучитьСтроку(Логин);
СтруктураНастроек.Вставить("login", Логин);
КонецЕсли;
Если Не Пароль = Неопределено Тогда
OPI_ПреобразованиеТипов.ПолучитьСтроку(Пароль);
СтруктураНастроек.Вставить("password", Пароль);
КонецЕсли;
//@skip-check constructor-function-return-section
Возврат СтруктураНастроек;
Возврат OPI_Компоненты.ПолучитьНастройкиПрокси(Адрес, Порт, Вид, Логин, Пароль);
КонецФункции
+527
View File
@@ -0,0 +1,527 @@
// OneScript: ./OInt/core/Modules/OPI_SFTP.os
// Lib: SFTP
// CLI: sftp
// Keywords: sftp
// MIT License
// Copyright (c) 2023-2025 Anton Tsitavets
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
// https://github.com/Bayselonarrend/OpenIntegrations
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
// BSLLS:NumberOfOptionalParams-off
// BSLLS:UsingServiceTag-off
// BSLLS:LineLength-off
// BSLLS:UsingSynchronousCalls-off
//@skip-check module-structure-top-region
//@skip-check module-structure-method-in-regions
//@skip-check wrong-string-literal-content
//@skip-check method-too-many-params
//@skip-check constructor-function-return-section
#Область ПрограммныйИнтерфейс
#Область ОсновныеМетоды
// Открыть соединение !NOCLI
// Создает новый сеанс SFTP
//
// Примечание:
// Получить конфигурацию соединения можно при помощи функций `ПолучитьНастройкиЛогинПароль`,^^
// `ПолучитьНастройкиПриватныйКлюч`, `ПолучитьНастройкиЧерезАгента`
//
// Параметры:
// НастройкиSSH - Структура Из КлючИЗначение - Структура настроек соединения - set
// Прокси - Структура Из КлючИЗначение - Структура настроек прокси, если необходимо - proxy
//
// Возвращаемое значение:
// Произвольный, Соответствие Из КлючИЗначение - Открыть соединение
Функция ОткрытьСоединение(Знач НастройкиSSH, Знач Прокси = "") Экспорт
СоединениеSSH = OPI_SSH.ОткрытьСоединение(НастройкиSSH, Прокси);
Если OPI_SSH.ЭтоКоннектор(СоединениеSSH) Тогда
Результат = СоединениеSSH.ToSFTP();
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
Иначе
Возврат СоединениеSSH;
КонецЕсли;
Возврат ?(Результат["result"], СоединениеSSH, Результат);
КонецФункции
// Получить конфигурацию соединения
// Формирует полную структуру настроек соединения, которая может быть использована вместо самого соединения при вызове других функций
//
// Примечание:
// Может быть передана в качестве параметра `Соединение` в других функциях вместо настоящего соединения из функции `ОткрытьСоединение`.^^
// При этом новое соединение будет открыто и закрыто в рамках вызываемой функции
// Не рекомендуется использовать конфигурацию соединения при множественных обращениях к серверу SSH.^^
// Данный функционал предназначен, в первую очередь для CLI версии ОПИ, где хранение соединения между вызовами невозможно
//
// Параметры:
// НастройкиSSH - Структура Из КлючИЗначение - Настройки SSH - set
// Прокси - Структура Из КлючИЗначение - Настройки прокси, если необходимо. См ПолучитьНастройкиПрокси - proxy
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Структура настроек соединения
Функция ПолучитьКонфигурациюСоединения(Знач НастройкиSSH, Знач Прокси = Неопределено) Экспорт
Возврат OPI_SSH.ПолучитьКонфигурациюСоединения(НастройкиSSH, Прокси);
КонецФункции
// Закрыть соединение !NOCLI
// Явно закрывает переданное соединение
//
// Параметры:
// Соединение - Произвольный - Объект компоненты с открытым соединением - conn
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Результат закрытия соединения
Функция ЗакрытьСоединение(Знач Соединение) Экспорт
Возврат OPI_SSH.ЗакрытьСоединение(Соединение);
КонецФункции
// Это коннектор !NOCLI
// Проверяет, что значение является объектом внешней компоненты для работы с SFTP
//
// Параметры:
// Значение - Произвольный - Значение для проверки - value
//
// Возвращаемое значение:
// Булево - Это коннектор
Функция ЭтоКоннектор(Знач Значение) Экспорт
Возврат OPI_SSH.ЭтоКоннектор(Значение);
КонецФункции
// Получить настройки (логин/пароль)
// Получает настройки соединения с авторизацией через логин и пароль
//
// Параметры:
// Хост - Строка - Хост SSH - host
// Порт - Число - Порт SSH - port
// Логин - Строка - Имя пользователя SSH - user
// Пароль - Строка - Пароль пользователя SSH - pass
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Конфигурация соединения
Функция ПолучитьНастройкиЛогинПароль(Знач Хост, Знач Порт, Знач Логин, Знач Пароль = "") Экспорт
Возврат OPI_SSH.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
КонецФункции
// Получить настройки (приватный ключ)
// Получает настройки соединения с авторизацией через приватный ключ
//
// Параметры:
// Хост - Строка - Хост SSH - host
// Порт - Число - Порт SSH - port
// Логин - Строка - Имя пользователя SSH - user
// Приватный - Строка - Путь к файлу приватного ключа - key
// Публичный - Строка - Путь к файлу публичного ключ - pub
// Пароль - Строка - Пароль (passphrase) приватного ключа - pass
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Конфигурация соединения
Функция ПолучитьНастройкиПриватныйКлюч(Знач Хост
, Знач Порт
, Знач Логин
, Знач Приватный
, Знач Публичный = ""
, Знач Пароль = "") Экспорт
Возврат OPI_SSH.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, Приватный, Публичный, Пароль);
КонецФункции
// Получить настройки (через агента)
// Получает настройки соединения с авторизацией через SSH Agent
//
// Параметры:
// Хост - Строка - Хост SSH - host
// Порт - Число - Порт SSH - port
// Логин - Строка - Имя пользователя SSH - user
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Конфигурация соединения
Функция ПолучитьНастройкиЧерезАгента(Знач Хост, Знач Порт, Знач Логин) Экспорт
Возврат OPI_SSH.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
КонецФункции
// Получить настройки прокси
// Формирует структуру настроек прокси-сервера для соединения
//
// Параметры:
// Адрес - Строка - Адрес прокси - addr
// Порт - Число - Порт прокси - port
// Вид - Строка - Вид прокси: socks5, socks4, http - type
// Логин - Строка, Неопределено - Логин авторизации, если необходимо - login
// Пароль - Строка, Неопределено - Пароль для авторизации, если необходимо - pass
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Структура настроек прокси
Функция ПолучитьНастройкиПрокси(Знач Адрес
, Знач Порт
, Знач Вид = "socks5"
, Знач Логин = Неопределено
, Знач Пароль = Неопределено) Экспорт
//@skip-check constructor-function-return-section
Возврат OPI_Компоненты.ПолучитьНастройкиПрокси(Адрес, Порт, Вид, Логин, Пароль);
КонецФункции
#КонецОбласти
#Область РаботаСДиректориями
// Получить список объектов
// Получает информацию о содержимом директории по выбранному пути
//
// Примечание:
// Команда FTP: `LIST`
//
// Параметры:
// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
// Путь - Строка - Путь к директории поиска - path
// Рекурсивно - Булево - Получать информацию об объектах во вложенных директориях - rcv
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - Результат обработки
Функция ПолучитьСписокОбъектов(Знач Соединение, Знач Путь = "", Знач Рекурсивно = Ложь) Экспорт
ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
Если Не ЭтоКоннектор(Соединение) Тогда
Возврат Соединение;
Иначе
OPI_ПреобразованиеТипов.ПолучитьБулево(Рекурсивно);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
Результат = Соединение.ListDirectory(Путь);
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
Если Результат["result"] И Рекурсивно Тогда
Для Каждого ОбъектКаталога Из Результат["data"] Цикл
Если Не ОбъектКаталога["is_directory"] Тогда
Продолжить;
КонецЕсли;
Дочерние = ПолучитьСписокОбъектов(Соединение, ОбъектКаталога["path"], Истина);
Если Дочерние["result"] Тогда
ОбъектКаталога.Вставить("objects", Дочерние["data"]);
Иначе
ОбъектКаталога.Вставить("objects", Дочерние["error"]);
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
Если ЗакрыватьСоединение Тогда
Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
КонецЕсли;
Возврат Результат;
КонецФункции
// Создать новую директорию
// Создает директорию по указанному пути
//
// Параметры:
// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
// Путь - Строка - Путь к новой директории - path
// Права - Строка - Режим доступа к каталогу в числовом формате POSIX (как в chmod) - mode
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - Результат обработки
Функция СоздатьНовуюДиректорию(Знач Соединение, Знач Путь, Знач Права = 700) Экспорт
ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
Если Не ЭтоКоннектор(Соединение) Тогда
Возврат Соединение;
Иначе
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
Результат = Соединение.MakeDirectory(Путь, Права);
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
КонецЕсли;
Если ЗакрыватьСоединение Тогда
Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
КонецЕсли;
Возврат Результат;
КонецФункции
// Удалить директорию
// Удаляет существующую директорию
//
// Параметры:
// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
// Путь - Строка - Путь к удаляемой директории - path
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - Результат обработки
Функция УдалитьДиректорию(Знач Соединение, Знач Путь) Экспорт
ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
Если Не ЭтоКоннектор(Соединение) Тогда
Возврат Соединение;
Иначе
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
Результат = Соединение.RemoveDirectory(Путь);
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
КонецЕсли;
Если ЗакрыватьСоединение Тогда
Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
КонецЕсли;
Возврат Результат;
КонецФункции
// Получить текущий каталог
// Получает текущий каталог, от которого вычисляются относительные пути
//
//
// Параметры:
// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - Результат обработки
Функция ПолучитьТекущийКаталог(Знач Соединение) Экспорт
ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
Если Не ЭтоКоннектор(Соединение) Тогда
Возврат Соединение;
Иначе
Результат = OPI_SSH.ВыполнитьКоманду(Соединение, "pwd");
ОбработатьВыполнениеКомандыSSH(Результат, "path");
КонецЕсли;
Если ЗакрыватьСоединение Тогда
Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
КонецЕсли;
Возврат Результат;
КонецФункции
#КонецОбласти
#Область РаботаСФайлами
// Загрузить файл
// Загружает файл с диска или двоичные данные на сервер
//
//
// Параметры:
// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
// Файл - Строка, ДвоичныеДанные - Файл на диске или данные файла - file
// Путь - Строка - Путь сохранения файла на сервере - path
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - Результат обработки
Функция ЗагрузитьФайл(Знач Соединение, Знач Файл, Знач Путь) Экспорт
ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
Если Не ЭтоКоннектор(Соединение) Тогда
Возврат Соединение;
Иначе
Если ТипЗнч(Файл) = Тип("Строка") Тогда
ФайлНаДиске = Новый Файл(Файл);
ЭтоФайлНаДиске = ФайлНаДиске.Существует();
Иначе
ЭтоФайлНаДиске = Ложь;
КонецЕсли;
Если Не ЭтоФайлНаДиске Тогда
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
Если OPI_Компоненты.ТребуетсяПередачаЧерезФайл() Тогда
// BSLLS:MissingTemporaryFileDeletion-off
//@skip-check missing-temporary-file-deletion
ИВФ = ПолучитьИмяВременногоФайла();
// BSLLS:MissingTemporaryFileDeletion-on
Файл.Записать(ИВФ);
Результат = Соединение.UploadFile(ИВФ, Путь);
OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Не удалось удалить временный файл после загрузки");
Иначе
Результат = Соединение.UploadData(Файл, Путь);
КонецЕсли;
Иначе
Результат = Соединение.UploadFile(Файл, Путь);
КонецЕсли;
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
КонецЕсли;
Если ЗакрыватьСоединение Тогда
Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
КонецЕсли;
Возврат Результат;
КонецФункции
// Удалить файл
// Удаляет файл с сервера
//
// Примечание:
// Команда FTP: `DELE`
//
// Параметры:
// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
// Путь - Строка - Путь сохранения файла на сервере - path
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - Результат обработки
Функция УдалитьФайл(Знач Соединение, Знач Путь) Экспорт
ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
Если Не ЭтоКоннектор(Соединение) Тогда
Возврат Соединение;
Иначе
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
Результат = Соединение.RemoveFile(Путь);
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
КонецЕсли;
Если ЗакрыватьСоединение Тогда
Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
КонецЕсли;
Возврат Результат;
КонецФункции
#КонецОбласти
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
Функция ПроверитьСоздатьСоединение(Соединение)
Если Не ЭтоКоннектор(Соединение) Тогда
ЗакрыватьСоединение = Истина;
Соединение = ОткрытьСоединение(Соединение);
Иначе
ЗакрыватьСоединение = Ложь;
КонецЕсли;
ЭтоSFTP = Соединение.IsSFTP();
Если Не ЭтоSFTP Тогда
Результат = Соединение.ToSFTP();
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
Соединение = ?(Результат["result"], Соединение, Результат);
КонецЕсли;
Возврат ЗакрыватьСоединение;
КонецФункции
Процедура ОбработатьВыполнениеКомандыSSH(Результат, ПолеРезультата = "data")
Если Результат["result"] Тогда
Результат_ = Новый Соответствие;
Если Не ЗначениеЗаполнено(Результат["stderr"]) Тогда
Результат_.Вставить("result", Истина);
StdOut = Результат["stdout"];
Если ЗначениеЗаполнено(StdOut) Тогда
Результат_.Вставить(ПолеРезультата, StdOut);
КонецЕсли;
Иначе
Результат_.Вставить("result", Ложь);
Результат_.Вставить("error" , Результат["stderr"]);
КонецЕсли;
Результат = Результат_;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
+9 -16
View File
@@ -133,6 +133,14 @@
Результат = Соединение.Execute(Команда);
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
Вывод = Результат["stdout"];
Если Вывод <> Неопределено Тогда
Если СтрЗаканчиваетсяНа(Вывод, Символы.ПС) Тогда
Результат["stdout"] = Лев(Вывод, СтрДлина(Вывод) - 1);
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ЗакрыватьСоединение Тогда
@@ -288,23 +296,8 @@
, Знач Логин = Неопределено
, Знач Пароль = Неопределено) Экспорт
СтруктураНастроек = Новый Структура;
OPI_Инструменты.ДобавитьПоле("server" , Адрес, "Строка", СтруктураНастроек);
OPI_Инструменты.ДобавитьПоле("port" , Порт , "Число" , СтруктураНастроек);
OPI_Инструменты.ДобавитьПоле("proxy_type", Вид , "Строка", СтруктураНастроек);
Если Не Логин = Неопределено Тогда
OPI_ПреобразованиеТипов.ПолучитьСтроку(Логин);
СтруктураНастроек.Вставить("login", Логин);
КонецЕсли;
Если Не Пароль = Неопределено Тогда
OPI_ПреобразованиеТипов.ПолучитьСтроку(Пароль);
СтруктураНастроек.Вставить("password", Пароль);
КонецЕсли;
//@skip-check constructor-function-return-section
Возврат СтруктураНастроек;
Возврат OPI_Компоненты.ПолучитьНастройкиПрокси(Адрес, Порт, Вид, Логин, Пароль);
КонецФункции
+1
View File
@@ -20,6 +20,7 @@
<module name="OPI_RCON" file="core/Modules/OPI_RCON.os"/>
<module name="OPI_ReportPortal" file="core/Modules/OPI_ReportPortal.os"/>
<module name="OPI_S3" file="core/Modules/OPI_S3.os"/>
<module name="OPI_SFTP" file="core/Modules/OPI_SFTP.os"/>
<module name="OPI_Slack" file="core/Modules/OPI_Slack.os"/>
<module name="OPI_SQLite" file="core/Modules/OPI_SQLite.os"/>
<module name="OPI_SSH" file="core/Modules/OPI_SSH.os"/>

Some files were not shown because too many files have changed in this diff Show More