You've already forked OpenIntegrations
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:
+1
@@ -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
@@ -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
@@ -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..."}
|
||||
Vendored
+1
@@ -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
@@ -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..."}
|
||||
Vendored
+1
@@ -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..."}
|
||||
Vendored
+1
@@ -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
@@ -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
@@ -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
@@ -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;
|
||||
Vendored
+49
@@ -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
@@ -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
@@ -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;
|
||||
Vendored
+56
@@ -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
@@ -1,5 +1,5 @@
|
||||
Token = "6129457865:AAFyzNYOAFbu...";
|
||||
ChatID = "@testsichee";
|
||||
MessageID = "20661";
|
||||
MessageID = "21081";
|
||||
|
||||
Result = OPI_Telegram.DeleteMessage(Token, ChatID, MessageID);
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
FileID = "CQACAgIAAx0EcNsaZQACUL5oxtZxTAF37mtQa89Nqv8gbBvdbQACnYcAAmMlOUrfHJ36K_ssgzYE";
|
||||
FileID = "CQACAgIAAx0EcNsaZQACUmJo1NxoX-106k_r0ejDFQLTjHkbwQACJXsAAi1mqUqQ81MjxNzPATYE";
|
||||
Token = "6129457865:AAFyzNYOAFbu...";
|
||||
|
||||
Result = OPI_Telegram.DownloadFile(Token, FileID);
|
||||
|
||||
+1
-1
@@ -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
@@ -1,5 +1,5 @@
|
||||
Token = "6129457865:AAFyzNYOAFbu...";
|
||||
ChannelID = "@testsichee";
|
||||
MessageID = "20661";
|
||||
MessageID = "21081";
|
||||
|
||||
Result = OPI_Telegram.PinMessage(Token, ChannelID, MessageID);
|
||||
|
||||
+1
-1
@@ -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
@@ -1,6 +1,6 @@
|
||||
Token = "6129457865:AAFyzNYOAFbu...";
|
||||
ChatID = "461699897";
|
||||
MessageID = "16303";
|
||||
MessageID = "16623";
|
||||
|
||||
ButtonArray = New Array;
|
||||
ButtonArray.Add("New button 3");
|
||||
|
||||
+1
-1
@@ -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
@@ -1,5 +1,5 @@
|
||||
Token = "6129457865:AAFyzNYOAFbu...";
|
||||
ChannelID = "@testsichee";
|
||||
MessageID = "20661";
|
||||
MessageID = "21081";
|
||||
|
||||
Result = OPI_Telegram.UnpinMessage(Token, ChannelID, MessageID);
|
||||
|
||||
+1
-1
@@ -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
@@ -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
@@ -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
@@ -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");
|
||||
|
||||
@@ -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);
|
||||
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"Хост":"172.33.0.13","Порт":"2222","Логин":"bayselonarrend","Пароль":"12we...","ТипПрокси":"http","АдресПрокси":"127.0.0.1","ПортПрокси":8071,"ЛогинПрокси":"proxyuser","ПарольПрокси":"12we..."}
|
||||
+1
@@ -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
@@ -0,0 +1 @@
|
||||
{"Хост":"172.33.0.13","Порт":"2222","Логин":"bayselonarrend","Пароль":"12we...","ТипПрокси":"http","АдресПрокси":"127.0.0.1","ПортПрокси":8071,"ЛогинПрокси":"proxyuser","ПарольПрокси":"12we..."}
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"Хост":"172.33.0.13","Порт":"2222","Логин":"bayselonarrend","Пароль":"12we...","ТипПрокси":"http","АдресПрокси":"127.0.0.1","ПортПрокси":8071,"ЛогинПрокси":"proxyuser","ПарольПрокси":"12we..."}
|
||||
+56
@@ -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");
|
||||
|
||||
Иначе
|
||||
Результат = Соединение; // Ошибка соединения
|
||||
КонецЕсли;
|
||||
+43
@@ -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");
|
||||
Иначе
|
||||
Результат = Соединение; // Ошибка соединения
|
||||
КонецЕсли;
|
||||
+49
@@ -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
@@ -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
-1
@@ -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
-1
@@ -1,6 +1,6 @@
|
||||
Токен = "6129457865:AAFyzNYOAFbu...";
|
||||
IDЧата = "461699897";
|
||||
IDСообщения = "16306";
|
||||
IDСообщения = "16626";
|
||||
|
||||
Описание = "Новое описание картинки";
|
||||
Результат = OPI_Telegram.ЗаменитьОписаниеСообщения(Токен, IDЧата, IDСообщения, Описание);
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
Токен = "6129457865:AAFyzNYOAFbu...";
|
||||
IDЧата = "@testsichee";
|
||||
IDСообщения = "20661";
|
||||
IDСообщения = "21081";
|
||||
Текст = "Новый текст сообщения";
|
||||
|
||||
Результат = OPI_Telegram.ЗаменитьТекстСообщения(Токен, IDЧата, IDСообщения, Текст);
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
Токен = "6129457865:AAFyzNYOAFbu...";
|
||||
IDКанала = "@testsichee";
|
||||
IDСообщения = "20661";
|
||||
IDСообщения = "21081";
|
||||
|
||||
Результат = OPI_Telegram.ОткрепитьСообщение(Токен, IDКанала, IDСообщения);
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
Токен = "6129457865:AAFyzNYOAFbu...";
|
||||
IDЧата = "461699897";
|
||||
IDКанала = "@testsichee";
|
||||
IDСообщения = "20661";
|
||||
IDСообщения = "21081";
|
||||
|
||||
Результат = OPI_Telegram.ПереслатьСообщение(Токен, IDСообщения, IDКанала, IDЧата);
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
IDФайла = "CQACAgIAAx0EcNsaZQACUL5oxtZxTAF37mtQa89Nqv8gbBvdbQACnYcAAmMlOUrfHJ36K_ssgzYE";
|
||||
IDФайла = "CQACAgIAAx0EcNsaZQACUmJo1NxoX-106k_r0ejDFQLTjHkbwQACJXsAAi1mqUqQ81MjxNzPATYE";
|
||||
Токен = "6129457865:AAFyzNYOAFbu...";
|
||||
|
||||
Результат = OPI_Telegram.СкачатьФайл(Токен, IDФайла);
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
Токен = "6129457865:AAFyzNYOAFbu...";
|
||||
IDЧата = "@testsichee";
|
||||
IDСообщения = "20661";
|
||||
IDСообщения = "21081";
|
||||
|
||||
Результат = OPI_Telegram.УдалитьСообщение(Токен, IDЧата, IDСообщения);
|
||||
|
||||
@@ -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/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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 | - | Структура Из КлючИЗначение | ✔ | Структура настроек соединения |
|
||||
| Прокси | - | Структура Из КлючИЗначение | ✖ | Структура настроек прокси, если необходимо |
|
||||
|
||||
|
||||
Возвращаемое значение: Произвольный, Соответствие Из КлючИЗначение - Открыть соединение
|
||||
|
||||
<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 | Структура Из КлючИЗначение | ✔ | Настройки SSH |
|
||||
| Прокси | --proxy | Структура Из КлючИЗначение | ✖ | Настройки прокси, если необходимо. См ПолучитьНастройкиПрокси |
|
||||
|
||||
|
||||
Возвращаемое значение: Структура Из КлючИЗначение - Структура настроек соединения
|
||||
|
||||
<br/>
|
||||
|
||||
:::tip
|
||||
Может быть передана в качестве параметра `Соединение` в других функциях вместо настоящего соединения из функции `ОткрытьСоединение`. При этом новое соединение будет открыто и закрыто в рамках вызываемой функции
|
||||
|
||||
Не рекомендуется использовать конфигурацию соединения при множественных обращениях к серверу SSH. Данный функционал предназначен, в первую очередь для CLI версии ОПИ, где хранение соединения между вызовами невозможно
|
||||
:::
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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 | Строка | ✔ | Адрес прокси |
|
||||
| Порт | --port | Число | ✔ | Порт прокси |
|
||||
| Вид | --type | Строка | ✖ | Вид прокси: socks5, socks4, http |
|
||||
| Логин | --login | Строка, Неопределено | ✖ | Логин авторизации, если необходимо |
|
||||
| Пароль | --pass | Строка, Неопределено | ✖ | Пароль для авторизации, если необходимо |
|
||||
|
||||
|
||||
Возвращаемое значение: Структура Из КлючИЗначение - Структура настроек прокси
|
||||
|
||||
<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 | Строка | ✔ | Хост SSH |
|
||||
| Порт | --port | Число | ✔ | Порт SSH |
|
||||
| Логин | --user | Строка | ✔ | Имя пользователя SSH |
|
||||
| Пароль | --pass | Строка | ✖ | Пароль пользователя 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 | Строка | ✔ | Хост SSH |
|
||||
| Порт | --port | Число | ✔ | Порт SSH |
|
||||
| Логин | --user | Строка | ✔ | Имя пользователя SSH |
|
||||
| Приватный | --key | Строка | ✔ | Путь к файлу приватного ключа |
|
||||
| Публичный | --pub | Строка | ✖ | Путь к файлу публичного ключ |
|
||||
| Пароль | --pass | Строка | ✖ | Пароль (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 | Строка | ✔ | Хост SSH |
|
||||
| Порт | --port | Число | ✔ | Порт SSH |
|
||||
| Логин | --user | Строка | ✔ | Имя пользователя SSH |
|
||||
|
||||
|
||||
Возвращаемое значение: Структура Из КлючИЗначение - Конфигурация соединения
|
||||
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+38
@@ -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 опция | Тип | Обяз. | Назначение |
|
||||
|-|-|-|-|-|
|
||||
| Значение | - | Произвольный | ✔ | Значение для проверки |
|
||||
|
||||
|
||||
Возвращаемое значение: Булево - Это коннектор
|
||||
|
||||
<br/>
|
||||
|
||||
|
||||
:::caution
|
||||
**NOCLI:** данный метод недоступен для использования в CLI версии
|
||||
:::
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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 | Произвольный | ✔ | Существующее соединение или конфигурация соединения |
|
||||
| Путь | --path | Строка | ✔ | Путь к новой директории |
|
||||
| Права | --mode | Строка | ✖ | Режим доступа к каталогу в числовом формате 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 | Произвольный | ✔ | Существующее соединение или конфигурация соединения |
|
||||
| Путь | --path | Строка | ✔ | Путь к удаляемой директории |
|
||||
|
||||
|
||||
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат обработки
|
||||
|
||||
<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 | Произвольный | ✔ | Существующее соединение или конфигурация соединения |
|
||||
|
||||
|
||||
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат обработки
|
||||
|
||||
<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.ПолучитьТекущийКаталог(Соединение);
|
||||
Иначе
|
||||
Результат = Соединение; // Ошибка соединения
|
||||
КонецЕсли;
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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 | Произвольный | ✔ | Существующее соединение или конфигурация соединения |
|
||||
| Путь | --path | Строка | ✖ | Путь к директории поиска |
|
||||
| Рекурсивно | --rcv | Булево | ✖ | Получать информацию об объектах во вложенных директориях |
|
||||
|
||||
|
||||
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат обработки
|
||||
|
||||
<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", Истина);
|
||||
Иначе
|
||||
Результат = Соединение; // Ошибка соединения
|
||||
КонецЕсли;
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Работа с директориями",
|
||||
"position": "3"
|
||||
}
|
||||
+88
@@ -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 | Произвольный | ✔ | Существующее соединение или конфигурация соединения |
|
||||
| Путь | --path | Строка | ✔ | Путь сохранения файла на сервере |
|
||||
|
||||
|
||||
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат обработки
|
||||
|
||||
<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
@@ -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 | Произвольный | ✔ | Существующее соединение или конфигурация соединения |
|
||||
| Файл | --file | Строка, ДвоичныеДанные | ✔ | Файл на диске или данные файла |
|
||||
| Путь | --path | Строка | ✔ | Путь сохранения файла на сервере |
|
||||
|
||||
|
||||
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат обработки
|
||||
|
||||
<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");
|
||||
|
||||
Иначе
|
||||
Результат = Соединение; // Ошибка соединения
|
||||
КонецЕсли;
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Работа с файлами",
|
||||
"position": "4"
|
||||
}
|
||||
+1
-1
@@ -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
@@ -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
@@ -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
@@ -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");
|
||||
|
||||
@@ -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Сообщения, Текст);
|
||||
|
||||
Vendored
+8868
-8868
File diff suppressed because it is too large
Load Diff
Vendored
+35
@@ -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": ""
|
||||
}
|
||||
]
|
||||
Vendored
+35
@@ -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": ""
|
||||
}
|
||||
]
|
||||
Vendored
+1
-16
@@ -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
|
||||
|
||||
|
||||
Vendored
+9
-16
@@ -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
|
||||
|
||||
|
||||
Vendored
+1
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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
|
||||
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
Vendored
+1
-16
@@ -448,23 +448,8 @@
|
||||
, Знач Логин = Неопределено
|
||||
, Знач Пароль = Неопределено) Экспорт
|
||||
|
||||
СтруктураНастроек = Новый Структура;
|
||||
OPI_Инструменты.ДобавитьПоле("server" , Адрес, "Строка", СтруктураНастроек);
|
||||
OPI_Инструменты.ДобавитьПоле("port" , Порт , "Число" , СтруктураНастроек);
|
||||
OPI_Инструменты.ДобавитьПоле("proxy_type", Вид , "Строка", СтруктураНастроек);
|
||||
|
||||
Если Не Логин = Неопределено Тогда
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Логин);
|
||||
СтруктураНастроек.Вставить("login", Логин);
|
||||
КонецЕсли;
|
||||
|
||||
Если Не Пароль = Неопределено Тогда
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Пароль);
|
||||
СтруктураНастроек.Вставить("password", Пароль);
|
||||
КонецЕсли;
|
||||
|
||||
//@skip-check constructor-function-return-section
|
||||
Возврат СтруктураНастроек;
|
||||
Возврат OPI_Компоненты.ПолучитьНастройкиПрокси(Адрес, Порт, Вид, Логин, Пароль);
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
Vendored
+527
@@ -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"]);
|
||||
КонецЕсли;
|
||||
|
||||
Результат = Результат_;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
Vendored
+9
-16
@@ -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_Компоненты.ПолучитьНастройкиПрокси(Адрес, Порт, Вид, Логин, Пароль);
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
Vendored
+1
@@ -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
Reference in New Issue
Block a user