You've already forked OpenIntegrations
mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-11-25 22:12:29 +02:00
Main build (Jenkins)
This commit is contained in:
1
docs/en/data/FTP/GetObjectSize.json
vendored
Normal file
1
docs/en/data/FTP/GetObjectSize.json
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"Host":"172.33.0.10","Port":21,"Login":"bayselonarrend","Password":"12we...","ProxyType":"http","ProxyAddress":"127.0.0.1","ProxyPort":8071,"ProxyLogin":"proxyuser","ProxyPassword":"12we..."}
|
||||
37
docs/en/examples/FTP/GetObjectSize.txt
vendored
Normal file
37
docs/en/examples/FTP/GetObjectSize.txt
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
Host = "172.33.0.10";
|
||||
Port = "21";
|
||||
Login = "bayselonarrend";
|
||||
Password = "12we...";
|
||||
|
||||
UseProxy = True;
|
||||
FTPS = True;
|
||||
|
||||
ProxySettings = Undefined;
|
||||
TLSSettings = Undefined; // FTPS
|
||||
|
||||
FTPSettings = OPI_FTP.GetConnectionSettings(Host, Port, Login, Password);
|
||||
|
||||
If UseProxy Then
|
||||
|
||||
ProxyType = "http"; // http, socks5, socks4
|
||||
|
||||
ProxyAddress = "127.0.0.1";
|
||||
ProxyPort = "8071";
|
||||
ProxyLogin = "proxyuser";
|
||||
ProxyPassword = "12we...";
|
||||
|
||||
ProxySettings = OPI_FTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
|
||||
|
||||
EndIf;
|
||||
|
||||
If FTPS Then
|
||||
TLSSettings = OPI_FTP.GetTlsSettings(True);
|
||||
EndIf;
|
||||
|
||||
Connection = OPI_FTP.CreateConnection(FTPSettings, ProxySettings, TLSSettings);
|
||||
|
||||
If OPI_FTP.IsConnector(Connection) Then
|
||||
Result = OPI_FTP.GetObjectSize(Connection, "new_dir/big.bin");
|
||||
Else
|
||||
Result = Connection; // Error of connection
|
||||
EndIf;
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
sidebar_position: 6
|
||||
sidebar_position: 7
|
||||
description: Get connection settings and other functions to work with FTP in the Open Integration Package, a free open-source integration library for 1C:Enterprise 8, OneScript and CLI
|
||||
keywords: [1C, 1С, 1С:Enterprise, 1С:Enterprise 8.3, API, Integration, Services, Exchange, OneScript, CLI, FTP]
|
||||
---
|
||||
|
||||
73
docs/en/md/FTP/Common-methods/Get-object-size.mdx
vendored
Normal file
73
docs/en/md/FTP/Common-methods/Get-object-size.mdx
vendored
Normal file
@@ -0,0 +1,73 @@
|
||||
---
|
||||
sidebar_position: 5
|
||||
description: Get object size and other functions to work with FTP in the Open Integration Package, a free open-source integration library for 1C:Enterprise 8, OneScript and CLI
|
||||
keywords: [1C, 1С, 1С:Enterprise, 1С:Enterprise 8.3, API, Integration, Services, Exchange, OneScript, CLI, FTP]
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
# Get object size
|
||||
Get the size of a file or directory if it exists
|
||||
|
||||
|
||||
|
||||
`Function GetObjectSize(Val Connection, Val Path) Export`
|
||||
|
||||
| Parameter | CLI option | Type | Required | Description |
|
||||
|-|-|-|-|-|
|
||||
| Connection | --conn | Arbitrary | ✔ | Existing connection or connection configuration |
|
||||
| Path | --path | String | ✔ | Path to the object |
|
||||
|
||||
|
||||
Returns: Map Of KeyAndValue - Processing result
|
||||
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
|
||||
```bsl title="1C:Enterprise/OneScript code example"
|
||||
Host = "172.33.0.10";
|
||||
Port = "21";
|
||||
Login = "bayselonarrend";
|
||||
Password = "12we...";
|
||||
|
||||
UseProxy = True;
|
||||
FTPS = True;
|
||||
|
||||
ProxySettings = Undefined;
|
||||
TLSSettings = Undefined; // FTPS
|
||||
|
||||
FTPSettings = OPI_FTP.GetConnectionSettings(Host, Port, Login, Password);
|
||||
|
||||
If UseProxy Then
|
||||
|
||||
ProxyType = "http"; // http, socks5, socks4
|
||||
|
||||
ProxyAddress = "127.0.0.1";
|
||||
ProxyPort = "8071";
|
||||
ProxyLogin = "proxyuser";
|
||||
ProxyPassword = "12we...";
|
||||
|
||||
ProxySettings = OPI_FTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
|
||||
|
||||
EndIf;
|
||||
|
||||
If FTPS Then
|
||||
TLSSettings = OPI_FTP.GetTlsSettings(True);
|
||||
EndIf;
|
||||
|
||||
Connection = OPI_FTP.CreateConnection(FTPSettings, ProxySettings, TLSSettings);
|
||||
|
||||
If OPI_FTP.IsConnector(Connection) Then
|
||||
Result = OPI_FTP.GetObjectSize(Connection, "new_dir/big.bin");
|
||||
Else
|
||||
Result = Connection; // Error of connection
|
||||
EndIf;
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
sidebar_position: 7
|
||||
sidebar_position: 8
|
||||
description: Get proxy settings and other functions to work with FTP in the Open Integration Package, a free open-source integration library for 1C:Enterprise 8, OneScript and CLI
|
||||
keywords: [1C, 1С, 1С:Enterprise, 1С:Enterprise 8.3, API, Integration, Services, Exchange, OneScript, CLI, FTP]
|
||||
---
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
sidebar_position: 8
|
||||
sidebar_position: 9
|
||||
description: Get TLS Settings and other functions to work with FTP in the Open Integration Package, a free open-source integration library for 1C:Enterprise 8, OneScript and CLI
|
||||
keywords: [1C, 1С, 1С:Enterprise, 1С:Enterprise 8.3, API, Integration, Services, Exchange, OneScript, CLI, FTP]
|
||||
---
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
sidebar_position: 5
|
||||
sidebar_position: 6
|
||||
description: Is connector and other functions to work with FTP in the Open Integration Package, a free open-source integration library for 1C:Enterprise 8, OneScript and CLI
|
||||
keywords: [1C, 1С, 1С:Enterprise, 1С:Enterprise 8.3, API, Integration, Services, Exchange, OneScript, CLI, FTP]
|
||||
---
|
||||
|
||||
@@ -18,7 +18,7 @@ import TabItem from '@theme/TabItem';
|
||||
|-|-|-|-|-|
|
||||
| Connection | --conn | Arbitrary | ✔ | Existing connection or connection configuration |
|
||||
| Path | --path | String | ✖ | Path to search directory |
|
||||
| Recursively | --rcv | Boolean | ✖ | Get information about elements in nested directories |
|
||||
| Recursively | --rcv | Boolean | ✖ | Get information about objects in nested directories |
|
||||
|
||||
|
||||
Returns: Map Of KeyAndValue - Processing result
|
||||
|
||||
1
docs/ru/data/FTP/ПолучитьРазмерОбъекта.json
vendored
Normal file
1
docs/ru/data/FTP/ПолучитьРазмерОбъекта.json
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"Хост":"172.33.0.10","Порт":21,"Логин":"bayselonarrend","Пароль":"12we...","ТипПрокси":"http","АдресПрокси":"127.0.0.1","ПортПрокси":8071,"ЛогинПрокси":"proxyuser","ПарольПрокси":"12we..."}
|
||||
37
docs/ru/examples/FTP/ПолучитьРазмерОбъекта.txt
vendored
Normal file
37
docs/ru/examples/FTP/ПолучитьРазмерОбъекта.txt
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
Хост = "172.33.0.10";
|
||||
Порт = "21";
|
||||
Логин = "bayselonarrend";
|
||||
Пароль = "12we...";
|
||||
|
||||
ИспользоватьПрокси = Истина;
|
||||
FTPS = Истина;
|
||||
|
||||
НастройкиПрокси = Неопределено;
|
||||
НастройкиTls = Неопределено; // FTPS
|
||||
|
||||
НастройкиFTP = OPI_FTP.ПолучитьНастройкиСоединения(Хост, Порт, Логин, Пароль);
|
||||
|
||||
Если ИспользоватьПрокси Тогда
|
||||
|
||||
ТипПрокси = "http"; // http, socks5, socks4
|
||||
|
||||
АдресПрокси = "127.0.0.1";
|
||||
ПортПрокси = "8071";
|
||||
ЛогинПрокси = "proxyuser";
|
||||
ПарольПрокси = "12we...";
|
||||
|
||||
НастройкиПрокси = OPI_FTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если FTPS Тогда
|
||||
НастройкиTls = OPI_FTP.ПолучитьНастройкиTls(Истина);
|
||||
КонецЕсли;
|
||||
|
||||
Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTls);
|
||||
|
||||
Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
|
||||
Результат = OPI_FTP.ПолучитьРазмерОбъекта(Соединение, "new_dir/big.bin");
|
||||
Иначе
|
||||
Результат = Соединение; // Ошибка соединения
|
||||
КонецЕсли;
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
sidebar_position: 6
|
||||
sidebar_position: 7
|
||||
description: Получить настройки соединения и другие функции для работы с FTP в Открытом пакете интеграций - бесплатной open-source библиотеке интеграций для 1С:Предприятие 8, OneScript и CLI
|
||||
keywords: [1C, 1С, 1С:Предприятие, 1С:Предприятие 8.3, API, Интеграция, Сервисы, Обмен, OneScript, CLI, FTP]
|
||||
---
|
||||
|
||||
73
docs/ru/md/FTP/Common-methods/Get-object-size.mdx
vendored
Normal file
73
docs/ru/md/FTP/Common-methods/Get-object-size.mdx
vendored
Normal file
@@ -0,0 +1,73 @@
|
||||
---
|
||||
sidebar_position: 5
|
||||
description: Получить размер объекта и другие функции для работы с FTP в Открытом пакете интеграций - бесплатной open-source библиотеке интеграций для 1С:Предприятие 8, OneScript и CLI
|
||||
keywords: [1C, 1С, 1С:Предприятие, 1С:Предприятие 8.3, API, Интеграция, Сервисы, Обмен, OneScript, CLI, FTP]
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
# Получить размер объекта
|
||||
Получает размер файла или директории, если она существуют
|
||||
|
||||
|
||||
|
||||
`Функция ПолучитьРазмерОбъекта(Знач Соединение, Знач Путь) Экспорт`
|
||||
|
||||
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|
||||
|-|-|-|-|-|
|
||||
| Соединение | --conn | Произвольный | ✔ | Существующее соединение или конфигурация соединения |
|
||||
| Путь | --path | Строка | ✔ | Путь к объекту |
|
||||
|
||||
|
||||
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат обработки
|
||||
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
|
||||
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
||||
Хост = "172.33.0.10";
|
||||
Порт = "21";
|
||||
Логин = "bayselonarrend";
|
||||
Пароль = "12we...";
|
||||
|
||||
ИспользоватьПрокси = Истина;
|
||||
FTPS = Истина;
|
||||
|
||||
НастройкиПрокси = Неопределено;
|
||||
НастройкиTls = Неопределено; // FTPS
|
||||
|
||||
НастройкиFTP = OPI_FTP.ПолучитьНастройкиСоединения(Хост, Порт, Логин, Пароль);
|
||||
|
||||
Если ИспользоватьПрокси Тогда
|
||||
|
||||
ТипПрокси = "http"; // http, socks5, socks4
|
||||
|
||||
АдресПрокси = "127.0.0.1";
|
||||
ПортПрокси = "8071";
|
||||
ЛогинПрокси = "proxyuser";
|
||||
ПарольПрокси = "12we...";
|
||||
|
||||
НастройкиПрокси = OPI_FTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если FTPS Тогда
|
||||
НастройкиTls = OPI_FTP.ПолучитьНастройкиTls(Истина);
|
||||
КонецЕсли;
|
||||
|
||||
Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTls);
|
||||
|
||||
Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
|
||||
Результат = OPI_FTP.ПолучитьРазмерОбъекта(Соединение, "new_dir/big.bin");
|
||||
Иначе
|
||||
Результат = Соединение; // Ошибка соединения
|
||||
КонецЕсли;
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
sidebar_position: 7
|
||||
sidebar_position: 8
|
||||
description: Получить настройки прокси и другие функции для работы с FTP в Открытом пакете интеграций - бесплатной open-source библиотеке интеграций для 1С:Предприятие 8, OneScript и CLI
|
||||
keywords: [1C, 1С, 1С:Предприятие, 1С:Предприятие 8.3, API, Интеграция, Сервисы, Обмен, OneScript, CLI, FTP]
|
||||
---
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
sidebar_position: 8
|
||||
sidebar_position: 9
|
||||
description: Получить настройки TLS и другие функции для работы с FTP в Открытом пакете интеграций - бесплатной open-source библиотеке интеграций для 1С:Предприятие 8, OneScript и CLI
|
||||
keywords: [1C, 1С, 1С:Предприятие, 1С:Предприятие 8.3, API, Интеграция, Сервисы, Обмен, OneScript, CLI, FTP]
|
||||
---
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
sidebar_position: 5
|
||||
sidebar_position: 6
|
||||
description: Это коннектор и другие функции для работы с FTP в Открытом пакете интеграций - бесплатной open-source библиотеке интеграций для 1С:Предприятие 8, OneScript и CLI
|
||||
keywords: [1C, 1С, 1С:Предприятие, 1С:Предприятие 8.3, API, Интеграция, Сервисы, Обмен, OneScript, CLI, FTP]
|
||||
---
|
||||
|
||||
@@ -68,6 +68,34 @@ import TabItem from '@theme/TabItem';
|
||||
```
|
||||
|
||||
|
||||
<Tabs>
|
||||
|
||||
<TabItem value="bash" label="Bash" default>
|
||||
```bash
|
||||
# JSON данные также могут быть переданы как путь к файлу .json
|
||||
|
||||
oint ftp ОчиститьДиректорию \
|
||||
--set "{'domain':'172.33.0.11','port':'21','passive':'***','read_timeout':'120','write_timeout':'120','advanced_resolve':'True','login':'bayselonarrend','password':'***'}" \
|
||||
--proxy "{'server':'127.0.0.1','port':'8071','proxy_type':'http','login':'proxyuser','password':'***'}" \
|
||||
--tls "{'use_tls':'True','accept_invalid_certs':'True','shutdown_delay':'250'}" \
|
||||
--conn "{'set':{'domain':'172.33.0.11','port':'21','passive':'***','read_timeout':'120','write_timeout':'120','advanced_resolve':'True','login':'bayselonarrend','password':'***'},'proxy':{'server':'127.0.0.1','port':'8071','proxy_type':'http','login':'proxyuser','password':'***'},'tls':{'use_tls':'True','accept_invalid_certs':'True','shutdown_delay':'250'}}" \
|
||||
--path "."
|
||||
```
|
||||
</TabItem>
|
||||
|
||||
<TabItem value="bat" label="CMD/Bat" default>
|
||||
```batch
|
||||
:: JSON данные также могут быть переданы как путь к файлу .json
|
||||
|
||||
oint ftp ОчиститьДиректорию ^
|
||||
--set "{'domain':'172.33.0.11','port':'21','passive':'***','read_timeout':'120','write_timeout':'120','advanced_resolve':'True','login':'bayselonarrend','password':'***'}" ^
|
||||
--proxy "{'server':'127.0.0.1','port':'8071','proxy_type':'http','login':'proxyuser','password':'***'}" ^
|
||||
--tls "{'use_tls':'True','accept_invalid_certs':'True','shutdown_delay':'250'}" ^
|
||||
--conn "{'set':{'domain':'172.33.0.11','port':'21','passive':'***','read_timeout':'120','write_timeout':'120','advanced_resolve':'True','login':'bayselonarrend','password':'***'},'proxy':{'server':'127.0.0.1','port':'8071','proxy_type':'http','login':'proxyuser','password':'***'},'tls':{'use_tls':'True','accept_invalid_certs':'True','shutdown_delay':'250'}}" ^
|
||||
--path "."
|
||||
```
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -77,7 +77,7 @@ import TabItem from '@theme/TabItem';
|
||||
# JSON данные также могут быть переданы как путь к файлу .json
|
||||
|
||||
oint ftp СоздатьДиректорию \
|
||||
--conn "{'set':{'domain':'127.0.0.1','port':'21','passive':'***','read_timeout':'120','write_timeout':'120','advanced_resolve':'True','login':'bayselonarrend','password':'***'}}" \
|
||||
--conn "{'set':{'domain':'172.33.0.11','port':'21','passive':'***','read_timeout':'120','write_timeout':'120','advanced_resolve':'True','login':'bayselonarrend','password':'***'},'proxy':{'server':'127.0.0.1','port':'8071','proxy_type':'http','login':'proxyuser','password':'***'},'tls':{'use_tls':'True','accept_invalid_certs':'True','shutdown_delay':'250'}}" \
|
||||
--path "second_dir/another_one"
|
||||
```
|
||||
</TabItem>
|
||||
@@ -87,7 +87,7 @@ import TabItem from '@theme/TabItem';
|
||||
:: JSON данные также могут быть переданы как путь к файлу .json
|
||||
|
||||
oint ftp СоздатьДиректорию ^
|
||||
--conn "{'set':{'domain':'127.0.0.1','port':'21','passive':'***','read_timeout':'120','write_timeout':'120','advanced_resolve':'True','login':'bayselonarrend','password':'***'}}" ^
|
||||
--conn "{'set':{'domain':'172.33.0.11','port':'21','passive':'***','read_timeout':'120','write_timeout':'120','advanced_resolve':'True','login':'bayselonarrend','password':'***'},'proxy':{'server':'127.0.0.1','port':'8071','proxy_type':'http','login':'proxyuser','password':'***'},'tls':{'use_tls':'True','accept_invalid_certs':'True','shutdown_delay':'250'}}" ^
|
||||
--path "second_dir/another_one"
|
||||
```
|
||||
</TabItem>
|
||||
|
||||
@@ -75,8 +75,11 @@ import TabItem from '@theme/TabItem';
|
||||
# JSON данные также могут быть переданы как путь к файлу .json
|
||||
|
||||
oint ftp УдалитьДиректорию \
|
||||
--conn "{'set':{'domain':'127.0.0.1','port':'21','passive':'***','read_timeout':'120','write_timeout':'120','advanced_resolve':'True','login':'bayselonarrend','password':'***'}}" \
|
||||
--path "new_dir"
|
||||
--set "{'domain':'172.33.0.11','port':'21','passive':'***','read_timeout':'120','write_timeout':'120','advanced_resolve':'True','login':'bayselonarrend','password':'***'}" \
|
||||
--proxy "{'server':'127.0.0.1','port':'8071','proxy_type':'http','login':'proxyuser','password':'***'}" \
|
||||
--tls "{'use_tls':'True','accept_invalid_certs':'True','shutdown_delay':'250'}" \
|
||||
--conn "{'set':{'domain':'172.33.0.11','port':'21','passive':'***','read_timeout':'120','write_timeout':'120','advanced_resolve':'True','login':'bayselonarrend','password':'***'},'proxy':{'server':'127.0.0.1','port':'8071','proxy_type':'http','login':'proxyuser','password':'***'},'tls':{'use_tls':'True','accept_invalid_certs':'True','shutdown_delay':'250'}}" \
|
||||
--path "new_dir/another_one"
|
||||
```
|
||||
</TabItem>
|
||||
|
||||
@@ -85,8 +88,11 @@ import TabItem from '@theme/TabItem';
|
||||
:: JSON данные также могут быть переданы как путь к файлу .json
|
||||
|
||||
oint ftp УдалитьДиректорию ^
|
||||
--conn "{'set':{'domain':'127.0.0.1','port':'21','passive':'***','read_timeout':'120','write_timeout':'120','advanced_resolve':'True','login':'bayselonarrend','password':'***'}}" ^
|
||||
--path "new_dir"
|
||||
--set "{'domain':'172.33.0.11','port':'21','passive':'***','read_timeout':'120','write_timeout':'120','advanced_resolve':'True','login':'bayselonarrend','password':'***'}" ^
|
||||
--proxy "{'server':'127.0.0.1','port':'8071','proxy_type':'http','login':'proxyuser','password':'***'}" ^
|
||||
--tls "{'use_tls':'True','accept_invalid_certs':'True','shutdown_delay':'250'}" ^
|
||||
--conn "{'set':{'domain':'172.33.0.11','port':'21','passive':'***','read_timeout':'120','write_timeout':'120','advanced_resolve':'True','login':'bayselonarrend','password':'***'},'proxy':{'server':'127.0.0.1','port':'8071','proxy_type':'http','login':'proxyuser','password':'***'},'tls':{'use_tls':'True','accept_invalid_certs':'True','shutdown_delay':'250'}}" ^
|
||||
--path "new_dir/another_one"
|
||||
```
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
@@ -18,7 +18,7 @@ import TabItem from '@theme/TabItem';
|
||||
|-|-|-|-|-|
|
||||
| Соединение | --conn | Произвольный | ✔ | Существующее соединение или конфигурация соединения |
|
||||
| Путь | --path | Строка | ✖ | Путь к директории поиска |
|
||||
| Рекурсивно | --rcv | Булево | ✖ | Получать информацию об элементах во вложенных директориях |
|
||||
| Рекурсивно | --rcv | Булево | ✖ | Получать информацию об объектах во вложенных директориях |
|
||||
|
||||
|
||||
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат обработки
|
||||
|
||||
16814
service/dictionaries/en.json
vendored
16814
service/dictionaries/en.json
vendored
File diff suppressed because it is too large
Load Diff
76
src/en/OInt/core/Modules/OPI_FTP.os
vendored
76
src/en/OInt/core/Modules/OPI_FTP.os
vendored
@@ -162,6 +162,38 @@ Function GetWelcomeMessage(Val Connection) Export
|
||||
|
||||
EndFunction
|
||||
|
||||
// Get object size
|
||||
// Get the size of a file or directory if it exists
|
||||
//
|
||||
// Parameters:
|
||||
// Connection - Arbitrary - Existing connection or connection configuration - conn
|
||||
// Path - String - Path to the object - path
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - Processing result
|
||||
Function GetObjectSize(Val Connection, Val Path) Export
|
||||
|
||||
CloseConnection = CheckCreateConnection(Connection);
|
||||
|
||||
If Not IsConnector(Connection) Then
|
||||
Return Connection;
|
||||
Else
|
||||
|
||||
OPI_TypeConversion.GetLine(Path);
|
||||
|
||||
Result = Connection.GetObjectSize(Path);
|
||||
Result = OPI_Tools.JsonToStructure(Result);
|
||||
|
||||
EndIf;
|
||||
|
||||
If CloseConnection Then
|
||||
Result.Insert("close_connection", CloseConnection(Connection));
|
||||
EndIf;
|
||||
|
||||
Return Result;
|
||||
|
||||
EndFunction
|
||||
|
||||
// Is connector !NOCLI
|
||||
// Checks that the value is an AddIn object for working with FTP
|
||||
//
|
||||
@@ -296,7 +328,7 @@ EndFunction
|
||||
// Parameters:
|
||||
// Connection - Arbitrary - Existing connection or connection configuration - conn
|
||||
// Path - String - Path to search directory - path
|
||||
// Recursively - Boolean - Get information about elements in nested directories - rcv
|
||||
// Recursively - Boolean - Get information about objects in nested directories - rcv
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - Processing result
|
||||
@@ -318,30 +350,30 @@ Function ListObjects(Val Connection, Val Path = "", Val Recursively = False) Exp
|
||||
|
||||
If Result["result"] Then
|
||||
|
||||
ElementList = Result["data"];
|
||||
ObjectList = Result["data"];
|
||||
|
||||
For Each Element In ElementList Do
|
||||
For Each Object In ObjectList Do
|
||||
|
||||
ElementName = Element["name"];
|
||||
ObjectName = Object["name"];
|
||||
|
||||
If ValueIsFilled(Path) Then
|
||||
ElementPath = StrTemplate("%1/%2", Path, ElementName);
|
||||
ObjectPath = StrTemplate("%1/%2", Path, ObjectName);
|
||||
Else
|
||||
ElementPath = ElementName;
|
||||
ObjectPath = ObjectName;
|
||||
EndIf;
|
||||
|
||||
Element.Insert("path", ElementPath);
|
||||
Object.Insert("path", ObjectPath);
|
||||
|
||||
If Recursively Then
|
||||
If Element["is_directory"] Then
|
||||
If Object["is_directory"] Then
|
||||
|
||||
ResultSubdirectory = ListObjects(Connection, ElementPath, True);
|
||||
ResultSubdirectory = ListObjects(Connection, ObjectPath, True);
|
||||
|
||||
If Not ResultSubdirectory["result"] Then
|
||||
Result = ResultSubdirectory;
|
||||
Break;
|
||||
Else
|
||||
Element.Insert("elements", ResultSubdirectory["data"]);
|
||||
Object.Insert("objects", ResultSubdirectory["data"]);
|
||||
EndIf;
|
||||
|
||||
EndIf;
|
||||
@@ -351,7 +383,7 @@ Function ListObjects(Val Connection, Val Path = "", Val Recursively = False) Exp
|
||||
|
||||
Result = New Map;
|
||||
Result.Insert("result", True);
|
||||
Result.Insert("data" , ElementList);
|
||||
Result.Insert("data" , ObjectList);
|
||||
|
||||
EndIf;
|
||||
|
||||
@@ -655,20 +687,20 @@ Function DeleteDirectoryRecursively(Val Connection, Val Path, Val DeleteCurrent
|
||||
Primary = False;
|
||||
EndIf;
|
||||
|
||||
NestedItems = ListObjects(Connection, Path, True);
|
||||
NeedParts = ListObjects(Connection, Path, True);
|
||||
|
||||
If NestedItems["result"] Then
|
||||
For Each Element In NestedItems["data"] Do
|
||||
If NeedParts["result"] Then
|
||||
For Each Object In NeedParts["data"] Do
|
||||
|
||||
ElementPath = Element["path"];
|
||||
ObjectPath = Object["path"];
|
||||
|
||||
If Element["is_directory"] Then
|
||||
Deletion = DeleteDirectoryRecursively(Connection, ElementPath, DeleteCurrent, DeletedArray);
|
||||
If Object["is_directory"] Then
|
||||
Deletion = DeleteDirectoryRecursively(Connection, ObjectPath, DeleteCurrent, DeletedArray);
|
||||
Else
|
||||
Deletion = DeleteFile(Connection, ElementPath);
|
||||
Deletion = DeleteFile(Connection, ObjectPath);
|
||||
EndIf;
|
||||
|
||||
Deletion.Insert("path", ElementPath);
|
||||
Deletion.Insert("path", ObjectPath);
|
||||
DeletedArray.Add(Deletion);
|
||||
|
||||
EndDo;
|
||||
@@ -683,7 +715,7 @@ Function DeleteDirectoryRecursively(Val Connection, Val Path, Val DeleteCurrent
|
||||
EndIf;
|
||||
|
||||
If Primary Then
|
||||
Result.Insert("deleted_elements", DeletedArray);
|
||||
Result.Insert("deleted_objects", DeletedArray);
|
||||
EndIf;
|
||||
|
||||
Return Result;
|
||||
@@ -748,6 +780,10 @@ Function ПолучитьПриветственноеСообщение(Val Со
|
||||
Return GetWelcomeMessage(Соединение);
|
||||
EndFunction
|
||||
|
||||
Function ПолучитьРазмерОбъекта(Val Соединение, Val Путь) Export
|
||||
Return GetObjectSize(Соединение, Путь);
|
||||
EndFunction
|
||||
|
||||
Function ЭтоКоннектор(Val Значение) Export
|
||||
Return IsConnector(Значение);
|
||||
EndFunction
|
||||
|
||||
70
src/en/OInt/tests/Modules/internal/OPI_Tests.os
vendored
70
src/en/OInt/tests/Modules/internal/OPI_Tests.os
vendored
@@ -2880,6 +2880,7 @@ Procedure FT_CommonMethods() Export
|
||||
FTP_GetConnectionSettings(TestParameters);
|
||||
FTP_GetProxySettings(TestParameters);
|
||||
FTP_GetTlsSettings(TestParameters);
|
||||
FTP_GetObjectSize(TestParameters);
|
||||
|
||||
EndDo;
|
||||
|
||||
@@ -25184,7 +25185,7 @@ Procedure FTP_CreateDirectory(FunctionParameters)
|
||||
OPI_TestDataRetrieval.WriteLog(Check, "CreateDirectory (check 2)", "FTP");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Check);
|
||||
OPI_TestDataRetrieval.Check_Array(Check["data"] , 1);
|
||||
OPI_TestDataRetrieval.Check_Array(Check["data"][0]["elements"], 1);
|
||||
OPI_TestDataRetrieval.Check_Array(Check["data"][0]["objects"], 1);
|
||||
|
||||
EndProcedure
|
||||
|
||||
@@ -25307,6 +25308,7 @@ Procedure FTP_UploadFile(FunctionParameters)
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "UploadFile" + Postfix , "FTP");
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "UploadFile (bd)" + Postfix , "FTP");
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "UploadFile (file size)" + Postfix, "FTP");
|
||||
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result2);
|
||||
@@ -25314,6 +25316,15 @@ Procedure FTP_UploadFile(FunctionParameters)
|
||||
OPI_TestDataRetrieval.Check_Equality(Result["bytes"] , ImageDD.Size());
|
||||
OPI_TestDataRetrieval.Check_Equality(Result2["bytes"], ImageDD.Size());
|
||||
|
||||
Result = OPI_FTP.GetObjectSize(Connection, "new_dir/pic_from_disk.png");
|
||||
Result2 = OPI_FTP.GetObjectSize(Connection, "pic_from_binary.png");
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "UploadFile (size 1)" + Postfix, "FTP");
|
||||
OPI_TestDataRetrieval.Check_Equality(Result["bytes"] , ImageDD.Size());
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result2, "UploadFile (size 2)" + Postfix, "FTP");
|
||||
OPI_TestDataRetrieval.Check_Equality(Result2["bytes"] , ImageDD.Size());
|
||||
|
||||
For N = 1 To 7 Do
|
||||
|
||||
Result = OPI_FTP.UploadFile(Connection, Image, "new_dir/pic_from_disk.png");
|
||||
@@ -25525,6 +25536,63 @@ Procedure FTP_ClearDirectory(FunctionParameters)
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure FTP_GetObjectSize(FunctionParameters)
|
||||
|
||||
Host = FunctionParameters["FTP_IP"];
|
||||
Port = FunctionParameters["FTP_Port"];
|
||||
Login = FunctionParameters["FTP_User"];
|
||||
Password = FunctionParameters["FTP_Password"];
|
||||
|
||||
UseProxy = True;
|
||||
FTPS = True;
|
||||
|
||||
ProxySettings = Undefined;
|
||||
TLSSettings = Undefined; // FTPS
|
||||
|
||||
UseProxy = FunctionParameters["Proxy"]; // SKIP
|
||||
FTPS = FunctionParameters["TLS"]; // SKIP
|
||||
|
||||
FTPSettings = OPI_FTP.GetConnectionSettings(Host, Port, Login, Password);
|
||||
|
||||
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_FTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
|
||||
|
||||
EndIf;
|
||||
|
||||
If FTPS Then
|
||||
TLSSettings = OPI_FTP.GetTlsSettings(True);
|
||||
EndIf;
|
||||
|
||||
Connection = OPI_FTP.CreateConnection(FTPSettings, ProxySettings, TLSSettings);
|
||||
|
||||
If OPI_FTP.IsConnector(Connection) Then
|
||||
Result = OPI_FTP.GetObjectSize(Connection, "new_dir/big.bin");
|
||||
Else
|
||||
Result = Connection; // Error of connection
|
||||
EndIf;
|
||||
|
||||
// END
|
||||
|
||||
Postfix = FunctionParameters["Postfix"];
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "GetObjectSize" + Postfix, "FTP");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
|
||||
Result = OPI_FTP.GetObjectSize(Connection, "new_dir/another.bin");
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "GetObjectSize (notexisted)" + Postfix, "FTP");
|
||||
OPI_TestDataRetrieval.Check_ResultFalse(Result);
|
||||
|
||||
EndProcedure
|
||||
|
||||
#EndRegion
|
||||
|
||||
#EndRegion
|
||||
|
||||
100
src/en/OInt/tests/Modules/internal/OPI_TestsCLI.os
vendored
100
src/en/OInt/tests/Modules/internal/OPI_TestsCLI.os
vendored
@@ -2777,6 +2777,7 @@ Procedure CLI_FT_CommonMethods() Export
|
||||
CLI_FTP_GetConnectionSettings(TestParameters);
|
||||
CLI_FTP_GetProxySettings(TestParameters);
|
||||
CLI_FTP_GetTlsSettings(TestParameters);
|
||||
CLI_FTP_GetObjectSize(TestParameters);
|
||||
|
||||
EndDo;
|
||||
|
||||
@@ -26733,7 +26734,7 @@ Procedure CLI_FTP_CreateDirectory(FunctionParameters)
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Check, "CreateDirectory (check 2)", "FTP");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Check);
|
||||
OPI_TestDataRetrieval.Check_Array(Check["data"] , 1);
|
||||
OPI_TestDataRetrieval.Check_Array(Check["data"][0]["elements"], 1);
|
||||
OPI_TestDataRetrieval.Check_Array(Check["data"][0]["objects"], 1);
|
||||
|
||||
EndProcedure
|
||||
|
||||
@@ -26986,6 +26987,7 @@ Procedure CLI_FTP_UploadFile(FunctionParameters)
|
||||
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result, "UploadFile" + Postfix , "FTP");
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result, "UploadFile (bd)" + Postfix , "FTP");
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result, "UploadFile (file size)" + Postfix, "FTP");
|
||||
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result2);
|
||||
@@ -26993,6 +26995,22 @@ Procedure CLI_FTP_UploadFile(FunctionParameters)
|
||||
OPI_TestDataRetrieval.Check_Equality(Result["bytes"] , ImageDD.Size());
|
||||
OPI_TestDataRetrieval.Check_Equality(Result2["bytes"], ImageDD.Size());
|
||||
|
||||
Options.Insert("conn", Connection);
|
||||
Options.Insert("path", "new_dir/pic_from_disk.png");
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ftp", "GetObjectSize", Options);
|
||||
|
||||
Options.Insert("conn", Connection);
|
||||
Options.Insert("path", "pic_from_binary.png");
|
||||
|
||||
Result2 = OPI_TestDataRetrieval.ExecuteTestCLI("ftp", "GetObjectSize", Options);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result, "UploadFile (size 1)" + Postfix, "FTP");
|
||||
OPI_TestDataRetrieval.Check_Equality(Result["bytes"] , ImageDD.Size());
|
||||
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result2, "UploadFile (size 2)" + Postfix, "FTP");
|
||||
OPI_TestDataRetrieval.Check_Equality(Result2["bytes"] , ImageDD.Size());
|
||||
|
||||
For N = 1 To 20 Do
|
||||
|
||||
Options = New Structure;
|
||||
@@ -27146,6 +27164,86 @@ Procedure CLI_FTP_DeleteFile(FunctionParameters)
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure CLI_FTP_GetObjectSize(FunctionParameters)
|
||||
|
||||
Domain = FunctionParameters["FTP_IP"];
|
||||
Port = FunctionParameters["FTP_Port"];
|
||||
Login = FunctionParameters["FTP_User"];
|
||||
Password = FunctionParameters["FTP_Password"];
|
||||
|
||||
UseProxy = True;
|
||||
FTPS = True;
|
||||
|
||||
ProxySettings = Undefined;
|
||||
TLSSettings = Undefined; // FTPS
|
||||
|
||||
UseProxy = FunctionParameters["Proxy"]; // SKIP
|
||||
FTPS = FunctionParameters["TLS"]; // SKIP
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("host" , Domain);
|
||||
Options.Insert("port" , Port);
|
||||
Options.Insert("login", Login);
|
||||
Options.Insert("pass" , Password);
|
||||
|
||||
FTPSettings = OPI_TestDataRetrieval.ExecuteTestCLI("ftp", "GetConnectionSettings", Options);
|
||||
|
||||
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"];
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("addr" , ProxyAddress);
|
||||
Options.Insert("port" , ProxyPort);
|
||||
Options.Insert("type" , ProxyType);
|
||||
Options.Insert("login", ProxyLogin);
|
||||
Options.Insert("pass" , ProxyPassword);
|
||||
|
||||
ProxySettings = OPI_TestDataRetrieval.ExecuteTestCLI("ftp", "GetProxySettings", Options);
|
||||
|
||||
EndIf;
|
||||
|
||||
If FTPS Then
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("trust", True);
|
||||
|
||||
TLSSettings = OPI_TestDataRetrieval.ExecuteTestCLI("ftp", "GetTlsSettings", Options);
|
||||
|
||||
EndIf;
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("set", FTPSettings);
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("set" , FTPSettings);
|
||||
Options.Insert("proxy", ProxySettings);
|
||||
Options.Insert("tls" , TLSSettings);
|
||||
|
||||
Connection = OPI_TestDataRetrieval.ExecuteTestCLI("ftp", "GetConnectionConfiguration", Options);
|
||||
|
||||
Options.Insert("conn", Connection);
|
||||
Options.Insert("path", "new_dir/big.bin");
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ftp", "GetObjectSize", Options);
|
||||
|
||||
Postfix = FunctionParameters["Postfix"];
|
||||
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result, "GetObjectSize" + Postfix, "FTP");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
|
||||
Result = OPI_FTP.GetObjectSize(Connection, "new_dir/another.bin");
|
||||
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result, "GetObjectSize (notexisted)" + Postfix, "FTP");
|
||||
OPI_TestDataRetrieval.Check_ResultFalse(Result);
|
||||
|
||||
EndProcedure
|
||||
|
||||
#EndRegion
|
||||
|
||||
#EndRegion
|
||||
|
||||
72
src/en/OPI/src/CommonModules/OPI_FTP/Module.bsl
vendored
72
src/en/OPI/src/CommonModules/OPI_FTP/Module.bsl
vendored
@@ -162,6 +162,38 @@ Function GetWelcomeMessage(Val Connection) Export
|
||||
|
||||
EndFunction
|
||||
|
||||
// Get object size
|
||||
// Get the size of a file or directory if it exists
|
||||
//
|
||||
// Parameters:
|
||||
// Connection - Arbitrary - Existing connection or connection configuration - conn
|
||||
// Path - String - Path to the object - path
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - Processing result
|
||||
Function GetObjectSize(Val Connection, Val Path) Export
|
||||
|
||||
CloseConnection = CheckCreateConnection(Connection);
|
||||
|
||||
If Not IsConnector(Connection) Then
|
||||
Return Connection;
|
||||
Else
|
||||
|
||||
OPI_TypeConversion.GetLine(Path);
|
||||
|
||||
Result = Connection.GetObjectSize(Path);
|
||||
Result = OPI_Tools.JsonToStructure(Result);
|
||||
|
||||
EndIf;
|
||||
|
||||
If CloseConnection Then
|
||||
Result.Insert("close_connection", CloseConnection(Connection));
|
||||
EndIf;
|
||||
|
||||
Return Result;
|
||||
|
||||
EndFunction
|
||||
|
||||
// Is connector !NOCLI
|
||||
// Checks that the value is an AddIn object for working with FTP
|
||||
//
|
||||
@@ -296,7 +328,7 @@ EndFunction
|
||||
// Parameters:
|
||||
// Connection - Arbitrary - Existing connection or connection configuration - conn
|
||||
// Path - String - Path to search directory - path
|
||||
// Recursively - Boolean - Get information about elements in nested directories - rcv
|
||||
// Recursively - Boolean - Get information about objects in nested directories - rcv
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - Processing result
|
||||
@@ -318,30 +350,30 @@ Function ListObjects(Val Connection, Val Path = "", Val Recursively = False) Exp
|
||||
|
||||
If Result["result"] Then
|
||||
|
||||
ElementList = Result["data"];
|
||||
ObjectList = Result["data"];
|
||||
|
||||
For Each Element In ElementList Do
|
||||
For Each Object In ObjectList Do
|
||||
|
||||
ElementName = Element["name"];
|
||||
ObjectName = Object["name"];
|
||||
|
||||
If ValueIsFilled(Path) Then
|
||||
ElementPath = StrTemplate("%1/%2", Path, ElementName);
|
||||
ObjectPath = StrTemplate("%1/%2", Path, ObjectName);
|
||||
Else
|
||||
ElementPath = ElementName;
|
||||
ObjectPath = ObjectName;
|
||||
EndIf;
|
||||
|
||||
Element.Insert("path", ElementPath);
|
||||
Object.Insert("path", ObjectPath);
|
||||
|
||||
If Recursively Then
|
||||
If Element["is_directory"] Then
|
||||
If Object["is_directory"] Then
|
||||
|
||||
ResultSubdirectory = ListObjects(Connection, ElementPath, True);
|
||||
ResultSubdirectory = ListObjects(Connection, ObjectPath, True);
|
||||
|
||||
If Not ResultSubdirectory["result"] Then
|
||||
Result = ResultSubdirectory;
|
||||
Break;
|
||||
Else
|
||||
Element.Insert("elements", ResultSubdirectory["data"]);
|
||||
Object.Insert("objects", ResultSubdirectory["data"]);
|
||||
EndIf;
|
||||
|
||||
EndIf;
|
||||
@@ -351,7 +383,7 @@ Function ListObjects(Val Connection, Val Path = "", Val Recursively = False) Exp
|
||||
|
||||
Result = New Map;
|
||||
Result.Insert("result", True);
|
||||
Result.Insert("data" , ElementList);
|
||||
Result.Insert("data" , ObjectList);
|
||||
|
||||
EndIf;
|
||||
|
||||
@@ -655,20 +687,20 @@ Function DeleteDirectoryRecursively(Val Connection, Val Path, Val DeleteCurrent
|
||||
Primary = False;
|
||||
EndIf;
|
||||
|
||||
NestedItems = ListObjects(Connection, Path, True);
|
||||
NeedParts = ListObjects(Connection, Path, True);
|
||||
|
||||
If NestedItems["result"] Then
|
||||
For Each Element In NestedItems["data"] Do
|
||||
If NeedParts["result"] Then
|
||||
For Each Object In NeedParts["data"] Do
|
||||
|
||||
ElementPath = Element["path"];
|
||||
ObjectPath = Object["path"];
|
||||
|
||||
If Element["is_directory"] Then
|
||||
Deletion = DeleteDirectoryRecursively(Connection, ElementPath, DeleteCurrent, DeletedArray);
|
||||
If Object["is_directory"] Then
|
||||
Deletion = DeleteDirectoryRecursively(Connection, ObjectPath, DeleteCurrent, DeletedArray);
|
||||
Else
|
||||
Deletion = DeleteFile(Connection, ElementPath);
|
||||
Deletion = DeleteFile(Connection, ObjectPath);
|
||||
EndIf;
|
||||
|
||||
Deletion.Insert("path", ElementPath);
|
||||
Deletion.Insert("path", ObjectPath);
|
||||
DeletedArray.Add(Deletion);
|
||||
|
||||
EndDo;
|
||||
@@ -683,7 +715,7 @@ Function DeleteDirectoryRecursively(Val Connection, Val Path, Val DeleteCurrent
|
||||
EndIf;
|
||||
|
||||
If Primary Then
|
||||
Result.Insert("deleted_elements", DeletedArray);
|
||||
Result.Insert("deleted_objects", DeletedArray);
|
||||
EndIf;
|
||||
|
||||
Return Result;
|
||||
|
||||
@@ -2880,6 +2880,7 @@ Procedure FT_CommonMethods() Export
|
||||
FTP_GetConnectionSettings(TestParameters);
|
||||
FTP_GetProxySettings(TestParameters);
|
||||
FTP_GetTlsSettings(TestParameters);
|
||||
FTP_GetObjectSize(TestParameters);
|
||||
|
||||
EndDo;
|
||||
|
||||
@@ -25184,7 +25185,7 @@ Procedure FTP_CreateDirectory(FunctionParameters)
|
||||
OPI_TestDataRetrieval.WriteLog(Check, "CreateDirectory (check 2)", "FTP");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Check);
|
||||
OPI_TestDataRetrieval.Check_Array(Check["data"] , 1);
|
||||
OPI_TestDataRetrieval.Check_Array(Check["data"][0]["elements"], 1);
|
||||
OPI_TestDataRetrieval.Check_Array(Check["data"][0]["objects"], 1);
|
||||
|
||||
EndProcedure
|
||||
|
||||
@@ -25307,6 +25308,7 @@ Procedure FTP_UploadFile(FunctionParameters)
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "UploadFile" + Postfix , "FTP");
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "UploadFile (bd)" + Postfix , "FTP");
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "UploadFile (file size)" + Postfix, "FTP");
|
||||
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result2);
|
||||
@@ -25314,6 +25316,15 @@ Procedure FTP_UploadFile(FunctionParameters)
|
||||
OPI_TestDataRetrieval.Check_Equality(Result["bytes"] , ImageDD.Size());
|
||||
OPI_TestDataRetrieval.Check_Equality(Result2["bytes"], ImageDD.Size());
|
||||
|
||||
Result = OPI_FTP.GetObjectSize(Connection, "new_dir/pic_from_disk.png");
|
||||
Result2 = OPI_FTP.GetObjectSize(Connection, "pic_from_binary.png");
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "UploadFile (size 1)" + Postfix, "FTP");
|
||||
OPI_TestDataRetrieval.Check_Equality(Result["bytes"] , ImageDD.Size());
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result2, "UploadFile (size 2)" + Postfix, "FTP");
|
||||
OPI_TestDataRetrieval.Check_Equality(Result2["bytes"] , ImageDD.Size());
|
||||
|
||||
For N = 1 To 7 Do
|
||||
|
||||
Result = OPI_FTP.UploadFile(Connection, Image, "new_dir/pic_from_disk.png");
|
||||
@@ -25525,6 +25536,63 @@ Procedure FTP_ClearDirectory(FunctionParameters)
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure FTP_GetObjectSize(FunctionParameters)
|
||||
|
||||
Host = FunctionParameters["FTP_IP"];
|
||||
Port = FunctionParameters["FTP_Port"];
|
||||
Login = FunctionParameters["FTP_User"];
|
||||
Password = FunctionParameters["FTP_Password"];
|
||||
|
||||
UseProxy = True;
|
||||
FTPS = True;
|
||||
|
||||
ProxySettings = Undefined;
|
||||
TLSSettings = Undefined; // FTPS
|
||||
|
||||
UseProxy = FunctionParameters["Proxy"]; // SKIP
|
||||
FTPS = FunctionParameters["TLS"]; // SKIP
|
||||
|
||||
FTPSettings = OPI_FTP.GetConnectionSettings(Host, Port, Login, Password);
|
||||
|
||||
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_FTP.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);
|
||||
|
||||
EndIf;
|
||||
|
||||
If FTPS Then
|
||||
TLSSettings = OPI_FTP.GetTlsSettings(True);
|
||||
EndIf;
|
||||
|
||||
Connection = OPI_FTP.CreateConnection(FTPSettings, ProxySettings, TLSSettings);
|
||||
|
||||
If OPI_FTP.IsConnector(Connection) Then
|
||||
Result = OPI_FTP.GetObjectSize(Connection, "new_dir/big.bin");
|
||||
Else
|
||||
Result = Connection; // Error of connection
|
||||
EndIf;
|
||||
|
||||
// END
|
||||
|
||||
Postfix = FunctionParameters["Postfix"];
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "GetObjectSize" + Postfix, "FTP");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
|
||||
Result = OPI_FTP.GetObjectSize(Connection, "new_dir/another.bin");
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "GetObjectSize (notexisted)" + Postfix, "FTP");
|
||||
OPI_TestDataRetrieval.Check_ResultFalse(Result);
|
||||
|
||||
EndProcedure
|
||||
|
||||
#EndRegion
|
||||
|
||||
#EndRegion
|
||||
|
||||
100
src/en/OPI/src/CommonModules/OPI_TestsCLI/Module.bsl
vendored
100
src/en/OPI/src/CommonModules/OPI_TestsCLI/Module.bsl
vendored
@@ -2777,6 +2777,7 @@ Procedure CLI_FT_CommonMethods() Export
|
||||
CLI_FTP_GetConnectionSettings(TestParameters);
|
||||
CLI_FTP_GetProxySettings(TestParameters);
|
||||
CLI_FTP_GetTlsSettings(TestParameters);
|
||||
CLI_FTP_GetObjectSize(TestParameters);
|
||||
|
||||
EndDo;
|
||||
|
||||
@@ -26733,7 +26734,7 @@ Procedure CLI_FTP_CreateDirectory(FunctionParameters)
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Check, "CreateDirectory (check 2)", "FTP");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Check);
|
||||
OPI_TestDataRetrieval.Check_Array(Check["data"] , 1);
|
||||
OPI_TestDataRetrieval.Check_Array(Check["data"][0]["elements"], 1);
|
||||
OPI_TestDataRetrieval.Check_Array(Check["data"][0]["objects"], 1);
|
||||
|
||||
EndProcedure
|
||||
|
||||
@@ -26986,6 +26987,7 @@ Procedure CLI_FTP_UploadFile(FunctionParameters)
|
||||
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result, "UploadFile" + Postfix , "FTP");
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result, "UploadFile (bd)" + Postfix , "FTP");
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result, "UploadFile (file size)" + Postfix, "FTP");
|
||||
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result2);
|
||||
@@ -26993,6 +26995,22 @@ Procedure CLI_FTP_UploadFile(FunctionParameters)
|
||||
OPI_TestDataRetrieval.Check_Equality(Result["bytes"] , ImageDD.Size());
|
||||
OPI_TestDataRetrieval.Check_Equality(Result2["bytes"], ImageDD.Size());
|
||||
|
||||
Options.Insert("conn", Connection);
|
||||
Options.Insert("path", "new_dir/pic_from_disk.png");
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ftp", "GetObjectSize", Options);
|
||||
|
||||
Options.Insert("conn", Connection);
|
||||
Options.Insert("path", "pic_from_binary.png");
|
||||
|
||||
Result2 = OPI_TestDataRetrieval.ExecuteTestCLI("ftp", "GetObjectSize", Options);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result, "UploadFile (size 1)" + Postfix, "FTP");
|
||||
OPI_TestDataRetrieval.Check_Equality(Result["bytes"] , ImageDD.Size());
|
||||
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result2, "UploadFile (size 2)" + Postfix, "FTP");
|
||||
OPI_TestDataRetrieval.Check_Equality(Result2["bytes"] , ImageDD.Size());
|
||||
|
||||
For N = 1 To 20 Do
|
||||
|
||||
Options = New Structure;
|
||||
@@ -27146,6 +27164,86 @@ Procedure CLI_FTP_DeleteFile(FunctionParameters)
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure CLI_FTP_GetObjectSize(FunctionParameters)
|
||||
|
||||
Domain = FunctionParameters["FTP_IP"];
|
||||
Port = FunctionParameters["FTP_Port"];
|
||||
Login = FunctionParameters["FTP_User"];
|
||||
Password = FunctionParameters["FTP_Password"];
|
||||
|
||||
UseProxy = True;
|
||||
FTPS = True;
|
||||
|
||||
ProxySettings = Undefined;
|
||||
TLSSettings = Undefined; // FTPS
|
||||
|
||||
UseProxy = FunctionParameters["Proxy"]; // SKIP
|
||||
FTPS = FunctionParameters["TLS"]; // SKIP
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("host" , Domain);
|
||||
Options.Insert("port" , Port);
|
||||
Options.Insert("login", Login);
|
||||
Options.Insert("pass" , Password);
|
||||
|
||||
FTPSettings = OPI_TestDataRetrieval.ExecuteTestCLI("ftp", "GetConnectionSettings", Options);
|
||||
|
||||
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"];
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("addr" , ProxyAddress);
|
||||
Options.Insert("port" , ProxyPort);
|
||||
Options.Insert("type" , ProxyType);
|
||||
Options.Insert("login", ProxyLogin);
|
||||
Options.Insert("pass" , ProxyPassword);
|
||||
|
||||
ProxySettings = OPI_TestDataRetrieval.ExecuteTestCLI("ftp", "GetProxySettings", Options);
|
||||
|
||||
EndIf;
|
||||
|
||||
If FTPS Then
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("trust", True);
|
||||
|
||||
TLSSettings = OPI_TestDataRetrieval.ExecuteTestCLI("ftp", "GetTlsSettings", Options);
|
||||
|
||||
EndIf;
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("set", FTPSettings);
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("set" , FTPSettings);
|
||||
Options.Insert("proxy", ProxySettings);
|
||||
Options.Insert("tls" , TLSSettings);
|
||||
|
||||
Connection = OPI_TestDataRetrieval.ExecuteTestCLI("ftp", "GetConnectionConfiguration", Options);
|
||||
|
||||
Options.Insert("conn", Connection);
|
||||
Options.Insert("path", "new_dir/big.bin");
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ftp", "GetObjectSize", Options);
|
||||
|
||||
Postfix = FunctionParameters["Postfix"];
|
||||
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result, "GetObjectSize" + Postfix, "FTP");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
|
||||
Result = OPI_FTP.GetObjectSize(Connection, "new_dir/another.bin");
|
||||
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result, "GetObjectSize (notexisted)" + Postfix, "FTP");
|
||||
OPI_TestDataRetrieval.Check_ResultFalse(Result);
|
||||
|
||||
EndProcedure
|
||||
|
||||
#EndRegion
|
||||
|
||||
#EndRegion
|
||||
|
||||
23
src/en/cli/data/Classes/internal/Classes/ftp.os
vendored
23
src/en/cli/data/Classes/internal/Classes/ftp.os
vendored
@@ -59,6 +59,27 @@ Function GetComposition() Export
|
||||
NewLine.MethodDescription = "Receives the FTP servers welcome message";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Library = "ftp";
|
||||
NewLine.Module = "OPI_FTP";
|
||||
NewLine.Method = "GetObjectSize";
|
||||
NewLine.SearchMethod = "GETOBJECTSIZE";
|
||||
NewLine.Parameter = "--conn";
|
||||
NewLine.Description = "Existing connection or connection configuration";
|
||||
NewLine.Region = "Common methods";
|
||||
NewLine.MethodDescription = "Get the size of a file or directory if it exists";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Library = "ftp";
|
||||
NewLine.Module = "OPI_FTP";
|
||||
NewLine.Method = "GetObjectSize";
|
||||
NewLine.SearchMethod = "GETOBJECTSIZE";
|
||||
NewLine.Parameter = "--path";
|
||||
NewLine.Description = "Path to the object";
|
||||
NewLine.Region = "Common methods";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Library = "ftp";
|
||||
NewLine.Module = "OPI_FTP";
|
||||
@@ -249,7 +270,7 @@ Function GetComposition() Export
|
||||
NewLine.Method = "ListObjects";
|
||||
NewLine.SearchMethod = "LISTOBJECTS";
|
||||
NewLine.Parameter = "--rcv";
|
||||
NewLine.Description = "Get information about elements in nested directories (optional, def. val. - False)";
|
||||
NewLine.Description = "Get information about objects in nested directories (optional, def. val. - False)";
|
||||
NewLine.Region = "Directory management";
|
||||
|
||||
|
||||
|
||||
76
src/ru/OInt/core/Modules/OPI_FTP.os
vendored
76
src/ru/OInt/core/Modules/OPI_FTP.os
vendored
@@ -162,6 +162,38 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Получить размер объекта
|
||||
// Получает размер файла или директории, если она существуют
|
||||
//
|
||||
// Параметры:
|
||||
// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
|
||||
// Путь - Строка - Путь к объекту - path
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - Результат обработки
|
||||
Функция ПолучитьРазмерОбъекта(Знач Соединение, Знач Путь) Экспорт
|
||||
|
||||
ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
|
||||
|
||||
Если Не ЭтоКоннектор(Соединение) Тогда
|
||||
Возврат Соединение;
|
||||
Иначе
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
|
||||
|
||||
Результат = Соединение.GetObjectSize(Путь);
|
||||
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗакрыватьСоединение Тогда
|
||||
Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Это коннектор !NOCLI
|
||||
// Проверяет, что значение является объектом внешней компоненты для работы с FTP
|
||||
//
|
||||
@@ -296,7 +328,7 @@
|
||||
// Параметры:
|
||||
// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
|
||||
// Путь - Строка - Путь к директории поиска - path
|
||||
// Рекурсивно - Булево - Получать информацию об элементах во вложенных директориях - rcv
|
||||
// Рекурсивно - Булево - Получать информацию об объектах во вложенных директориях - rcv
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - Результат обработки
|
||||
@@ -318,30 +350,30 @@
|
||||
|
||||
Если Результат["result"] Тогда
|
||||
|
||||
СписокЭлементов = Результат["data"];
|
||||
СписокОбъектов = Результат["data"];
|
||||
|
||||
Для Каждого Элемент Из СписокЭлементов Цикл
|
||||
Для Каждого Объект Из СписокОбъектов Цикл
|
||||
|
||||
ИмяЭлемента = Элемент["name"];
|
||||
ИмяОбъекта = Объект["name"];
|
||||
|
||||
Если ЗначениеЗаполнено(Путь) Тогда
|
||||
ПутьЭлемента = СтрШаблон("%1/%2", Путь, ИмяЭлемента);
|
||||
ПутьОбъекта = СтрШаблон("%1/%2", Путь, ИмяОбъекта);
|
||||
Иначе
|
||||
ПутьЭлемента = ИмяЭлемента;
|
||||
ПутьОбъекта = ИмяОбъекта;
|
||||
КонецЕсли;
|
||||
|
||||
Элемент.Вставить("path", ПутьЭлемента);
|
||||
Объект.Вставить("path", ПутьОбъекта);
|
||||
|
||||
Если Рекурсивно Тогда
|
||||
Если Элемент["is_directory"] Тогда
|
||||
Если Объект["is_directory"] Тогда
|
||||
|
||||
РезультатПодкаталога = ПолучитьСписокОбъектов(Соединение, ПутьЭлемента, Истина);
|
||||
РезультатПодкаталога = ПолучитьСписокОбъектов(Соединение, ПутьОбъекта, Истина);
|
||||
|
||||
Если Не РезультатПодкаталога["result"] Тогда
|
||||
Результат = РезультатПодкаталога;
|
||||
Прервать;
|
||||
Иначе
|
||||
Элемент.Вставить("elements", РезультатПодкаталога["data"]);
|
||||
Объект.Вставить("objects", РезультатПодкаталога["data"]);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
@@ -351,7 +383,7 @@
|
||||
|
||||
Результат = Новый Соответствие;
|
||||
Результат.Вставить("result", Истина);
|
||||
Результат.Вставить("data" , СписокЭлементов);
|
||||
Результат.Вставить("data" , СписокОбъектов);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
@@ -655,20 +687,20 @@
|
||||
Основной = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
ВложенныеЭлементы = ПолучитьСписокОбъектов(Соединение, Путь, Истина);
|
||||
ВложенныеОбъекты = ПолучитьСписокОбъектов(Соединение, Путь, Истина);
|
||||
|
||||
Если ВложенныеЭлементы["result"] Тогда
|
||||
Для Каждого Элемент Из ВложенныеЭлементы["data"] Цикл
|
||||
Если ВложенныеОбъекты["result"] Тогда
|
||||
Для Каждого Объект Из ВложенныеОбъекты["data"] Цикл
|
||||
|
||||
ПутьЭлемента = Элемент["path"];
|
||||
ПутьОбъекта = Объект["path"];
|
||||
|
||||
Если Элемент["is_directory"] Тогда
|
||||
Удаление = УдалитьДиректориюРекурсивно(Соединение, ПутьЭлемента, УдалятьТекущую, МассивУдаленных);
|
||||
Если Объект["is_directory"] Тогда
|
||||
Удаление = УдалитьДиректориюРекурсивно(Соединение, ПутьОбъекта, УдалятьТекущую, МассивУдаленных);
|
||||
Иначе
|
||||
Удаление = УдалитьФайл(Соединение, ПутьЭлемента);
|
||||
Удаление = УдалитьФайл(Соединение, ПутьОбъекта);
|
||||
КонецЕсли;
|
||||
|
||||
Удаление.Вставить("path", ПутьЭлемента);
|
||||
Удаление.Вставить("path", ПутьОбъекта);
|
||||
МассивУдаленных.Добавить(Удаление);
|
||||
|
||||
КонецЦикла;
|
||||
@@ -683,7 +715,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если Основной Тогда
|
||||
Результат.Вставить("deleted_elements", МассивУдаленных);
|
||||
Результат.Вставить("deleted_objects", МассивУдаленных);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
@@ -748,6 +780,10 @@ Function GetWelcomeMessage(Val Connection) Export
|
||||
Return ПолучитьПриветственноеСообщение(Connection);
|
||||
EndFunction
|
||||
|
||||
Function GetObjectSize(Val Connection, Val Path) Export
|
||||
Return ПолучитьРазмерОбъекта(Connection, Path);
|
||||
EndFunction
|
||||
|
||||
Function IsConnector(Val Value) Export
|
||||
Return ЭтоКоннектор(Value);
|
||||
EndFunction
|
||||
|
||||
70
src/ru/OInt/tests/Modules/internal/OPI_Тесты.os
vendored
70
src/ru/OInt/tests/Modules/internal/OPI_Тесты.os
vendored
@@ -2880,6 +2880,7 @@
|
||||
FTP_ПолучитьНастройкиСоединения(ПараметрыТеста);
|
||||
FTP_ПолучитьНастройкиПрокси(ПараметрыТеста);
|
||||
FTP_ПолучитьНастройкиTls(ПараметрыТеста);
|
||||
FTP_ПолучитьРазмерОбъекта(ПараметрыТеста);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
@@ -25184,7 +25185,7 @@
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Проверка, "СоздатьДиректорию (проверка 2)", "FTP");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Проверка);
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Массив(Проверка["data"] , 1);
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Массив(Проверка["data"][0]["elements"], 1);
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Массив(Проверка["data"][0]["objects"] , 1);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -25307,6 +25308,7 @@
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗагрузитьФайл" + Постфикс , "FTP");
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗагрузитьФайл (дд)" + Постфикс , "FTP");
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗагрузитьФайл (размер файла)" + Постфикс, "FTP");
|
||||
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат2);
|
||||
@@ -25314,6 +25316,15 @@
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Равенство(Результат["bytes"] , КартинкаДД.Размер());
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Равенство(Результат2["bytes"], КартинкаДД.Размер());
|
||||
|
||||
Результат = OPI_FTP.ПолучитьРазмерОбъекта(Соединение, "new_dir/pic_from_disk.png");
|
||||
Результат2 = OPI_FTP.ПолучитьРазмерОбъекта(Соединение, "pic_from_binary.png");
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗагрузитьФайл (размер 1)" + Постфикс, "FTP");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Равенство(Результат["bytes"] , КартинкаДД.Размер());
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат2, "ЗагрузитьФайл (размер 2)" + Постфикс, "FTP");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Равенство(Результат2["bytes"] , КартинкаДД.Размер());
|
||||
|
||||
Для Н = 1 По 7 Цикл
|
||||
|
||||
Результат = OPI_FTP.ЗагрузитьФайл(Соединение, Картинка, "new_dir/pic_from_disk.png");
|
||||
@@ -25525,6 +25536,63 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура FTP_ПолучитьРазмерОбъекта(ПараметрыФункции)
|
||||
|
||||
Хост = ПараметрыФункции["FTP_IP"];
|
||||
Порт = ПараметрыФункции["FTP_Port"];
|
||||
Логин = ПараметрыФункции["FTP_User"];
|
||||
Пароль = ПараметрыФункции["FTP_Password"];
|
||||
|
||||
ИспользоватьПрокси = Истина;
|
||||
FTPS = Истина;
|
||||
|
||||
НастройкиПрокси = Неопределено;
|
||||
НастройкиTls = Неопределено; // FTPS
|
||||
|
||||
ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
|
||||
FTPS = ПараметрыФункции["TLS"]; // SKIP
|
||||
|
||||
НастройкиFTP = OPI_FTP.ПолучитьНастройкиСоединения(Хост, Порт, Логин, Пароль);
|
||||
|
||||
Если ИспользоватьПрокси Тогда
|
||||
|
||||
ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
|
||||
|
||||
АдресПрокси = ПараметрыФункции["Proxy_IP"];
|
||||
ПортПрокси = ПараметрыФункции["Proxy_Port"];
|
||||
ЛогинПрокси = ПараметрыФункции["Proxy_User"];
|
||||
ПарольПрокси = ПараметрыФункции["Proxy_Password"];
|
||||
|
||||
НастройкиПрокси = OPI_FTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если FTPS Тогда
|
||||
НастройкиTls = OPI_FTP.ПолучитьНастройкиTls(Истина);
|
||||
КонецЕсли;
|
||||
|
||||
Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTls);
|
||||
|
||||
Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
|
||||
Результат = OPI_FTP.ПолучитьРазмерОбъекта(Соединение, "new_dir/big.bin");
|
||||
Иначе
|
||||
Результат = Соединение; // Ошибка соединения
|
||||
КонецЕсли;
|
||||
|
||||
// END
|
||||
|
||||
Постфикс = ПараметрыФункции["Postfix"];
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьРазмерОбъекта" + Постфикс, "FTP");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
|
||||
|
||||
Результат = OPI_FTP.ПолучитьРазмерОбъекта(Соединение, "new_dir/another.bin");
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьРазмерОбъекта (несуществующий)" + Постфикс, "FTP");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатЛожь(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
100
src/ru/OInt/tests/Modules/internal/OPI_ТестыCLI.os
vendored
100
src/ru/OInt/tests/Modules/internal/OPI_ТестыCLI.os
vendored
@@ -2777,6 +2777,7 @@
|
||||
CLI_FTP_ПолучитьНастройкиСоединения(ПараметрыТеста);
|
||||
CLI_FTP_ПолучитьНастройкиПрокси(ПараметрыТеста);
|
||||
CLI_FTP_ПолучитьНастройкиTls(ПараметрыТеста);
|
||||
CLI_FTP_ПолучитьРазмерОбъекта(ПараметрыТеста);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
@@ -26733,7 +26734,7 @@
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Проверка, "СоздатьДиректорию (проверка 2)", "FTP");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Проверка);
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Массив(Проверка["data"] , 1);
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Массив(Проверка["data"][0]["elements"], 1);
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Массив(Проверка["data"][0]["objects"] , 1);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -26986,6 +26987,7 @@
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ЗагрузитьФайл" + Постфикс , "FTP");
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ЗагрузитьФайл (дд)" + Постфикс , "FTP");
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ЗагрузитьФайл (размер файла)" + Постфикс, "FTP");
|
||||
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат2);
|
||||
@@ -26993,6 +26995,22 @@
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Равенство(Результат["bytes"] , КартинкаДД.Размер());
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Равенство(Результат2["bytes"], КартинкаДД.Размер());
|
||||
|
||||
Опции.Вставить("conn", Соединение);
|
||||
Опции.Вставить("path", "new_dir/pic_from_disk.png");
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьРазмерОбъекта", Опции);
|
||||
|
||||
Опции.Вставить("conn", Соединение);
|
||||
Опции.Вставить("path", "pic_from_binary.png");
|
||||
|
||||
Результат2 = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьРазмерОбъекта", Опции);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ЗагрузитьФайл (размер 1)" + Постфикс, "FTP");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Равенство(Результат["bytes"] , КартинкаДД.Размер());
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат2, "ЗагрузитьФайл (размер 2)" + Постфикс, "FTP");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Равенство(Результат2["bytes"] , КартинкаДД.Размер());
|
||||
|
||||
Для Н = 1 По 20 Цикл
|
||||
|
||||
Опции = Новый Структура;
|
||||
@@ -27146,6 +27164,86 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура CLI_FTP_ПолучитьРазмерОбъекта(ПараметрыФункции)
|
||||
|
||||
Домен = ПараметрыФункции["FTP_IP"];
|
||||
Порт = ПараметрыФункции["FTP_Port"];
|
||||
Логин = ПараметрыФункции["FTP_User"];
|
||||
Пароль = ПараметрыФункции["FTP_Password"];
|
||||
|
||||
ИспользоватьПрокси = Истина;
|
||||
FTPS = Истина;
|
||||
|
||||
НастройкиПрокси = Неопределено;
|
||||
НастройкиTls = Неопределено; // FTPS
|
||||
|
||||
ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
|
||||
FTPS = ПараметрыФункции["TLS"]; // SKIP
|
||||
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("host" , Домен);
|
||||
Опции.Вставить("port" , Порт);
|
||||
Опции.Вставить("login", Логин);
|
||||
Опции.Вставить("pass" , Пароль);
|
||||
|
||||
НастройкиFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиСоединения", Опции);
|
||||
|
||||
Если ИспользоватьПрокси Тогда
|
||||
|
||||
ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
|
||||
|
||||
АдресПрокси = ПараметрыФункции["Proxy_IP"];
|
||||
ПортПрокси = ПараметрыФункции["Proxy_Port"];
|
||||
ЛогинПрокси = ПараметрыФункции["Proxy_User"];
|
||||
ПарольПрокси = ПараметрыФункции["Proxy_Password"];
|
||||
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("addr" , АдресПрокси);
|
||||
Опции.Вставить("port" , ПортПрокси);
|
||||
Опции.Вставить("type" , ТипПрокси);
|
||||
Опции.Вставить("login", ЛогинПрокси);
|
||||
Опции.Вставить("pass" , ПарольПрокси);
|
||||
|
||||
НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиПрокси", Опции);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если FTPS Тогда
|
||||
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("trust", Истина);
|
||||
|
||||
НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиTls", Опции);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("set", НастройкиFTP);
|
||||
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("set" , НастройкиFTP);
|
||||
Опции.Вставить("proxy", НастройкиПрокси);
|
||||
Опции.Вставить("tls" , НастройкиTLS);
|
||||
|
||||
Соединение = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьКонфигурациюСоединения", Опции);
|
||||
|
||||
Опции.Вставить("conn", Соединение);
|
||||
Опции.Вставить("path", "new_dir/big.bin");
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьРазмерОбъекта", Опции);
|
||||
|
||||
Постфикс = ПараметрыФункции["Postfix"];
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ПолучитьРазмерОбъекта" + Постфикс, "FTP");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
|
||||
|
||||
Результат = OPI_FTP.ПолучитьРазмерОбъекта(Соединение, "new_dir/another.bin");
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ПолучитьРазмерОбъекта (несуществующий)" + Постфикс, "FTP");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатЛожь(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
23
src/ru/cli/data/Classes/internal/Classes/ftp.os
vendored
23
src/ru/cli/data/Classes/internal/Classes/ftp.os
vendored
@@ -59,6 +59,27 @@
|
||||
НоваяСтрока.ОписаниеМетода = "Получает приветственное сообщение сервера FTP";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "ftp";
|
||||
НоваяСтрока.Модуль = "OPI_FTP";
|
||||
НоваяСтрока.Метод = "ПолучитьРазмерОбъекта";
|
||||
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬРАЗМЕРОБЪЕКТА";
|
||||
НоваяСтрока.Параметр = "--conn";
|
||||
НоваяСтрока.Описание = "Существующее соединение или конфигурация соединения";
|
||||
НоваяСтрока.Область = "Основные методы";
|
||||
НоваяСтрока.ОписаниеМетода = "Получает размер файла или директории, если она существуют";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "ftp";
|
||||
НоваяСтрока.Модуль = "OPI_FTP";
|
||||
НоваяСтрока.Метод = "ПолучитьРазмерОбъекта";
|
||||
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬРАЗМЕРОБЪЕКТА";
|
||||
НоваяСтрока.Параметр = "--path";
|
||||
НоваяСтрока.Описание = "Путь к объекту";
|
||||
НоваяСтрока.Область = "Основные методы";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "ftp";
|
||||
НоваяСтрока.Модуль = "OPI_FTP";
|
||||
@@ -249,7 +270,7 @@
|
||||
НоваяСтрока.Метод = "ПолучитьСписокОбъектов";
|
||||
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОКОБЪЕКТОВ";
|
||||
НоваяСтрока.Параметр = "--rcv";
|
||||
НоваяСтрока.Описание = "Получать информацию об элементах во вложенных директориях (необяз. по ум. - False)";
|
||||
НоваяСтрока.Описание = "Получать информацию об объектах во вложенных директориях (необяз. по ум. - False)";
|
||||
НоваяСтрока.Область = "Работа с директориями";
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user