You've already forked OpenIntegrations
mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-08-10 22:41:43 +02:00
FTP: Очистка директории
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
"MAIN ---"
|
||||
linux-vdso.so.1 (0x00007fff7e1fc000)
|
||||
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000731559200000)
|
||||
libc.so.6 => /lib64/libc.so.6 (0x0000731558e00000)
|
||||
libdl.so.2 => /lib64/libdl.so.2 (0x0000731558a00000)
|
||||
/lib64/ld-linux-x86-64.so.2 (0x0000731559800000)
|
||||
linux-vdso.so.1 (0x00007ffe740fb000)
|
||||
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007e7f2e600000)
|
||||
libc.so.6 => /lib64/libc.so.6 (0x00007e7f2e200000)
|
||||
libdl.so.2 => /lib64/libdl.so.2 (0x00007e7f2de00000)
|
||||
/lib64/ld-linux-x86-64.so.2 (0x00007e7f2ec00000)
|
||||
GLIBC_2.2.5
|
||||
GLIBC_2.3
|
||||
GLIBC_2.3.4
|
||||
|
@@ -112,8 +112,6 @@ impl FtpClient {
|
||||
FtpClient::Insecure(stream) => stream.mkdir(path),
|
||||
};
|
||||
|
||||
sleep(Duration::from_millis(100));
|
||||
|
||||
match result {
|
||||
Ok(_) => json!({"result": true}).to_string(),
|
||||
Err(e) => format_json_error(&e.to_string())
|
||||
|
@@ -8,6 +8,7 @@ use addin1c::{name, Variant};
|
||||
use serde_json::json;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::sync::{Arc, Mutex, MutexGuard};
|
||||
use std::thread::sleep;
|
||||
use std::time::Duration;
|
||||
|
||||
use crate::core::getset;
|
||||
@@ -59,7 +60,7 @@ pub fn get_params_amount(num: usize) -> usize {
|
||||
// Вызовы должны быть обернуты в Box::new
|
||||
pub fn cal_func(obj: &mut AddIn, num: usize, params: &mut [Variant]) -> Box<dyn getset::ValueType> {
|
||||
|
||||
match num {
|
||||
let result: Box<dyn getset::ValueType> = match num {
|
||||
|
||||
0 => Box::new(obj.initialize()),
|
||||
1 => Box::new(obj.close_connection()),
|
||||
@@ -163,7 +164,11 @@ pub fn cal_func(obj: &mut AddIn, num: usize, params: &mut [Variant]) -> Box<dyn
|
||||
12 => Box::new(obj.get_configurations()),
|
||||
13 => Box::new(obj.is_tls()),
|
||||
_ => Box::new(false), // Неверный номер команды
|
||||
}
|
||||
};
|
||||
|
||||
sleep(Duration::from_millis(150));
|
||||
|
||||
result
|
||||
|
||||
}
|
||||
|
||||
|
BIN
src/en/OInt/addins/OPI_FTP.zip
vendored
BIN
src/en/OInt/addins/OPI_FTP.zip
vendored
Binary file not shown.
Binary file not shown.
BIN
src/ru/OInt/addins/OPI_FTP.zip
vendored
BIN
src/ru/OInt/addins/OPI_FTP.zip
vendored
Binary file not shown.
@@ -407,23 +407,23 @@
|
||||
// Соответствие Из КлючИЗначение - Результат обработки
|
||||
Функция УдалитьДиректорию(Знач Соединение, Знач Путь) Экспорт
|
||||
|
||||
ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
|
||||
Возврат ОчиститьУдалитьДиректорию(Соединение, Путь, Истина);
|
||||
|
||||
Если Не ЭтоКоннектор(Соединение) Тогда
|
||||
Возврат Соединение;
|
||||
Иначе
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
|
||||
Результат = УдалитьДиректориюРекурсивно(Соединение, Путь);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗакрыватьСоединение Тогда
|
||||
Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
КонецФункции
|
||||
|
||||
// Очистить директорию
|
||||
// Очищает выбранную директорию
|
||||
//
|
||||
// Параметры:
|
||||
// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
|
||||
// Путь - Строка - Путь к очищаемой директории - path
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - Результат обработки
|
||||
Функция ОчиститьДиректорию(Знач Соединение, Знач Путь) Экспорт
|
||||
|
||||
Возврат ОчиститьУдалитьДиректорию(Соединение, Путь, Ложь);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
@@ -625,7 +625,28 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция УдалитьДиректориюРекурсивно(Знач Соединение, Знач Путь, МассивУдаленных = Неопределено)
|
||||
Функция ОчиститьУдалитьДиректорию(Знач Соединение, Знач Путь, Знач УдалятьТекущую)
|
||||
|
||||
ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
|
||||
|
||||
Если Не ЭтоКоннектор(Соединение) Тогда
|
||||
Возврат Соединение;
|
||||
Иначе
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
|
||||
Результат = УдалитьДиректориюРекурсивно(Соединение, Путь, УдалятьТекущую);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗакрыватьСоединение Тогда
|
||||
Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция УдалитьДиректориюРекурсивно(Знач Соединение, Знач Путь, Знач УдалятьТекущую = Истина, МассивУдаленных = Неопределено)
|
||||
|
||||
Если МассивУдаленных = Неопределено Тогда
|
||||
МассивУдаленных = Новый Массив;
|
||||
@@ -642,7 +663,7 @@
|
||||
ПутьЭлемента = Элемент["path"];
|
||||
|
||||
Если Элемент["is_directory"] Тогда
|
||||
Удаление = УдалитьДиректориюРекурсивно(Соединение, ПутьЭлемента, МассивУдаленных);
|
||||
Удаление = УдалитьДиректориюРекурсивно(Соединение, ПутьЭлемента, УдалятьТекущую, МассивУдаленных);
|
||||
Иначе
|
||||
Удаление = УдалитьФайл(Соединение, ПутьЭлемента);
|
||||
КонецЕсли;
|
||||
@@ -653,8 +674,13 @@
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
Результат = Соединение.RemoveDirectory(Путь);
|
||||
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
|
||||
Если Не Основной Или УдалятьТекущую Тогда
|
||||
Результат = Соединение.RemoveDirectory(Путь);
|
||||
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
|
||||
Иначе
|
||||
Результат = Новый Соответствие;
|
||||
Результат.Вставить("result", Истина);
|
||||
КонецЕсли;
|
||||
|
||||
Если Основной Тогда
|
||||
Результат.Вставить("deleted_elements", МассивУдаленных);
|
||||
|
@@ -2890,9 +2890,10 @@
|
||||
МассивВариантов = OPI_ПолучениеДанныхТестов.ПолучитьВариантыПараметровFTP();
|
||||
|
||||
Для Каждого ПараметрыТеста Из МассивВариантов Цикл
|
||||
|
||||
FTP_ПолучитьСписокОбъектов(ПараметрыТеста);
|
||||
|
||||
FTP_ОчиститьДиректорию(ПараметрыТеста);
|
||||
FTP_СоздатьДиректорию(ПараметрыТеста);
|
||||
FTP_ПолучитьСписокОбъектов(ПараметрыТеста);
|
||||
FTP_УдалитьДиректорию(ПараметрыТеста);
|
||||
|
||||
КонецЦикла;
|
||||
@@ -25313,7 +25314,7 @@
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Равенство(Результат["bytes"] , КартинкаДД.Размер());
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Равенство(Результат2["bytes"], КартинкаДД.Размер());
|
||||
|
||||
Для Н = 1 По 20 Цикл
|
||||
Для Н = 1 По 7 Цикл
|
||||
|
||||
Результат = OPI_FTP.ЗагрузитьФайл(Соединение, Картинка, "new_dir/pic_from_disk.png");
|
||||
Результат2 = OPI_FTP.ЗагрузитьФайл(Соединение, КартинкаДД, "pic_from_binary.png");
|
||||
@@ -25466,6 +25467,64 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура 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.ОчиститьДиректорию(Соединение, "");
|
||||
Иначе
|
||||
Результат = Соединение; // Ошибка соединения
|
||||
КонецЕсли;
|
||||
|
||||
// END
|
||||
|
||||
Постфикс = ПараметрыФункции["Postfix"];
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОчиститьДиректорию" + Постфикс, "FTP");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
|
||||
|
||||
Результат = OPI_FTP.ПолучитьСписокОбъектов(Соединение, "", Истина);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОчиститьДиректорию (проверка)", "FTP");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Массив(Результат["data"], 0);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
Binary file not shown.
Reference in New Issue
Block a user