1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2024-11-24 08:52:18 +02:00

S3: Копирование объекта

This commit is contained in:
Anton Titovets 2024-11-18 10:21:42 +03:00
parent fdae81667f
commit d8b2b631a7
8 changed files with 6269 additions and 5643 deletions

File diff suppressed because it is too large Load Diff

View File

@ -124,7 +124,7 @@
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
Функция СоздатьБакет(Знач Наименование, Знач ОсновныеДанные, Знач Каталог = Истина, Знач Заголовки = Неопределено) Экспорт
Функция СоздатьБакет(Знач Наименование, Знач ОсновныеДанные, Знач Каталог = Ложь, Знач Заголовки = Неопределено) Экспорт
Ответ = УправлениеБакетом(Наименование, ОсновныеДанные, Каталог, "PUT", Заголовки);
Возврат Ответ;
@ -145,7 +145,7 @@
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
Функция УдалитьБакет(Знач Наименование, Знач ОсновныеДанные, Знач Каталог = Истина, Знач Заголовки = Неопределено) Экспорт
Функция УдалитьБакет(Знач Наименование, Знач ОсновныеДанные, Знач Каталог = Ложь, Знач Заголовки = Неопределено) Экспорт
Ответ = УправлениеБакетом(Наименование, ОсновныеДанные, Каталог, "DELETE", Заголовки);
Возврат Ответ;
@ -169,7 +169,7 @@
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
Функция ПроверитьДоступностьБакета(Знач Наименование
, Знач ОсновныеДанные
, Знач Каталог = Истина
, Знач Каталог = Ложь
, Знач IDАккаунта = ""
, Знач Заголовки = Неопределено) Экспорт
@ -204,7 +204,7 @@
Функция УстановитьШифрованиеБакета(Знач Наименование
, Знач ОсновныеДанные
, Знач XMLКонфигурация
, Знач Каталог = Истина
, Знач Каталог = Ложь
, Знач Заголовки = Неопределено) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(XMLКонфигурация, Истина);
@ -238,7 +238,7 @@
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
Функция ПолучитьШифрованиеБакета(Знач Наименование
, Знач ОсновныеДанные
, Знач Каталог = Истина
, Знач Каталог = Ложь
, Знач Заголовки = Неопределено) Экспорт
URL = ПолучитьURLСервиса(ОсновныеДанные);
@ -270,7 +270,7 @@
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
Функция УдалитьШифрованиеБакета(Знач Наименование
, Знач ОсновныеДанные
, Знач Каталог = Истина
, Знач Каталог = Ложь
, Знач Заголовки = Неопределено) Экспорт
URL = ПолучитьURLСервиса(ОсновныеДанные);
@ -305,7 +305,7 @@
Функция УстановитьТегиБакета(Знач Наименование
, Знач ОсновныеДанные
, Знач Теги
, Знач Каталог = Истина
, Знач Каталог = Ложь
, Знач Заголовки = Неопределено) Экспорт
Теги = СформироватьСтруктуруТегов(Теги);
@ -340,7 +340,7 @@
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
Функция ПолучитьТегиБакета(Знач Наименование
, Знач ОсновныеДанные
, Знач Каталог = Истина
, Знач Каталог = Ложь
, Знач Заголовки = Неопределено) Экспорт
URL = ПолучитьURLСервиса(ОсновныеДанные);
@ -371,7 +371,7 @@
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
Функция УдалитьТегиБакета(Знач Наименование
, Знач ОсновныеДанные
, Знач Каталог = Истина
, Знач Каталог = Ложь
, Знач Заголовки = Неопределено) Экспорт
URL = ПолучитьURLСервиса(ОсновныеДанные);
@ -406,7 +406,7 @@
, Знач ОсновныеДанные
, Знач Статус = Неопределено
, Знач УдалениеMFA = Неопределено
, Знач Каталог = Истина
, Знач Каталог = Ложь
, Знач Заголовки = Неопределено) Экспорт
Теги = СформироватьСтруктуруНастроекВерсионирования(Статус, УдалениеMFA);
@ -441,7 +441,7 @@
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
Функция ПолучитьНастройкийВерсионированияБакета(Знач Наименование
, Знач ОсновныеДанные
, Знач Каталог = Истина
, Знач Каталог = Ложь
, Знач Заголовки = Неопределено) Экспорт
URL = ПолучитьURLСервиса(ОсновныеДанные);
@ -527,7 +527,7 @@
ОсновныеДанные.Вставить("URL", URL);
Ответ = ОтправитьЗапросСТелом("PUT", ОсновныеДанные, Содержимое, Заголовки);
Ответ = ОтправитьЗапрос("PUT", ОсновныеДанные, Содержимое, Заголовки);
Возврат Ответ;
@ -619,6 +619,45 @@
КонецФункции
// Копировать объект
// Копирует объект из одного расположения в другое
//
// Примечание:
// Метод в документации AWS: [CopyObject](@docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)
//
// Параметры:
// ПутьИсточник - Строка - Путь (имя) в бакете источнике - sname
// БакетИсточник - Строка - Бакет источник объекта - sbucket
// ПутьПриемник - Строка - Путь (имя) объекта в бакете приемнике - name
// БакетПриемник - Строка - Имя бакета приемника - bucket
// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
Функция КопироватьОбъект(Знач ПутьИсточник
, Знач БакетИсточник
, Знач ПутьПриемник
, Знач БакетПриемник
, Знач ОсновныеДанные
, Знач Заголовки = Неопределено) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(ПутьИсточник);
OPI_ПреобразованиеТипов.ПолучитьСтроку(БакетИсточник);
Источник = БакетИсточник + "/" + ПутьИсточник;
Источник = ?(СтрНачинаетсяС(Источник, "/"), Источник, "/" + Источник);
ЗаголовокИсточника = Новый Соответствие();
ЗаголовокИсточника.Вставить("x-amz-copy-source", Источник);
ДобавитьДополнительныеЗаголовки(Заголовки, ЗаголовокИсточника);
Ответ = ЗагрузитьОбъект(ПутьПриемник, БакетПриемник, Неопределено, ОсновныеДанные, Заголовки);
Возврат Ответ;
КонецФункции
#КонецОбласти
#КонецОбласти

View File

@ -2149,6 +2149,7 @@
S3_СоздатьБакет(ПараметрыТеста);
S3_ЗагрузитьОбъект(ПараметрыТеста);
S3_ПолучитьОписаниеОбъекта(ПараметрыТеста);
S3_КопироватьОбъект(ПараметрыТеста);
S3_УдалитьОбъект(ПараметрыТеста);
S3_УдалитьБакет(ПараметрыТеста);
@ -14715,7 +14716,7 @@
// Directory bucket
Наименование = "opi-dirbucket3";
Результат = OPI_S3.СоздатьБакет(Наименование, ОсновныеДанные);
Результат = OPI_S3.СоздатьБакет(Наименование, ОсновныеДанные, Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьБакет (DB)", "S3"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат); // SKIP
@ -14724,7 +14725,7 @@
// General purpose bucket
Наименование = "opi-gpbucket3";
Результат = OPI_S3.СоздатьБакет(Наименование, ОсновныеДанные, Ложь);
Результат = OPI_S3.СоздатьБакет(Наименование, ОсновныеДанные);
// END
@ -14745,7 +14746,7 @@
// Directory bucket
Наименование = "opi-dirbucket3";
Результат = OPI_S3.УдалитьБакет(Наименование, ОсновныеДанные);
Результат = OPI_S3.УдалитьБакет(Наименование, ОсновныеДанные, Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьБакет (DB)", "S3"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат); // SKIP
@ -14754,7 +14755,7 @@
// General purpose bucket
Наименование = "opi-gpbucket3";
Результат = OPI_S3.УдалитьБакет(Наименование, ОсновныеДанные, Ложь);
Результат = OPI_S3.УдалитьБакет(Наименование, ОсновныеДанные);
// END
@ -14790,13 +14791,13 @@
ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
Наименование = "opi-dirbucket3";
Результат = OPI_S3.ПроверитьДоступностьБакета(Наименование, ОсновныеДанные, Истина);
Результат = OPI_S3.ПроверитьДоступностьБакета(Наименование, ОсновныеДанные);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПроверитьДоступностьБакета", "S3"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат); // SKIP
ОсновныеДанные.Вставить("URL", ПараметрыФункции["S3_URL"]); // SKIP
Результат = OPI_S3.ПроверитьДоступностьБакета(Наименование, ОсновныеДанные, Истина, "1234");
Результат = OPI_S3.ПроверитьДоступностьБакета(Наименование, ОсновныеДанные, , "1234");
// END
@ -14815,7 +14816,7 @@
ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
Наименование = "opi-newbucket2";
Результат = OPI_S3.ПолучитьШифрованиеБакета(Наименование, ОсновныеДанные, Ложь);
Результат = OPI_S3.ПолучитьШифрованиеБакета(Наименование, ОсновныеДанные);
// END
@ -14834,7 +14835,7 @@
ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
Наименование = "opi-newbucket2";
Результат = OPI_S3.УдалитьШифрованиеБакета(Наименование, ОсновныеДанные, Ложь);
Результат = OPI_S3.УдалитьШифрованиеБакета(Наименование, ОсновныеДанные);
// END
@ -14860,7 +14861,7 @@
| </Rule>
|</ServerSideEncryptionConfiguration>";
Результат = OPI_S3.УстановитьШифрованиеБакета(Наименование, ОсновныеДанные, XMLКонфигурация, Ложь);
Результат = OPI_S3.УстановитьШифрованиеБакета(Наименование, ОсновныеДанные, XMLКонфигурация);
// END
@ -14882,7 +14883,7 @@
// Directory bucket
Наименование = "opi-dirbucket3";
Результат = OPI_S3.ПолучитьТегиБакета(Наименование, ОсновныеДанные);
Результат = OPI_S3.ПолучитьТегиБакета(Наименование, ОсновныеДанные, Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьТегиБакета (DB)", "S3"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат); // SKIP
@ -14891,7 +14892,7 @@
// General purpose bucket
Наименование = "opi-gpbucket3";
Результат = OPI_S3.ПолучитьТегиБакета(Наименование, ОсновныеДанные, Ложь);
Результат = OPI_S3.ПолучитьТегиБакета(Наименование, ОсновныеДанные);
// END
@ -14916,7 +14917,7 @@
// Directory bucket
Наименование = "opi-dirbucket3";
Результат = OPI_S3.УстановитьТегиБакета(Наименование, ОсновныеДанные, СтруктураТегов);
Результат = OPI_S3.УстановитьТегиБакета(Наименование, ОсновныеДанные, СтруктураТегов, Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УстановитьТегиБакета (DB)", "S3"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат); // SKIP
@ -14925,7 +14926,7 @@
// General purpose bucket
Наименование = "opi-gpbucket3";
Результат = OPI_S3.УстановитьТегиБакета(Наименование, ОсновныеДанные, СтруктураТегов, Ложь);
Результат = OPI_S3.УстановитьТегиБакета(Наименование, ОсновныеДанные, СтруктураТегов);
// END
@ -14946,7 +14947,7 @@
// Directory bucket
Наименование = "opi-dirbucket3";
Результат = OPI_S3.УдалитьТегиБакета(Наименование, ОсновныеДанные);
Результат = OPI_S3.УдалитьТегиБакета(Наименование, ОсновныеДанные, Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьТегиБакета (DB)", "S3"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат); // SKIP
@ -14955,7 +14956,7 @@
// General purpose bucket
Наименование = "opi-gpbucket3";
Результат = OPI_S3.УдалитьТегиБакета(Наименование, ОсновныеДанные, Ложь);
Результат = OPI_S3.УдалитьТегиБакета(Наименование, ОсновныеДанные);
// END
@ -14979,7 +14980,7 @@
// Directory bucket
Наименование = "opi-dirbucket3";
Результат = OPI_S3.ПолучитьНастройкийВерсионированияБакета(Наименование, ОсновныеДанные);
Результат = OPI_S3.ПолучитьНастройкийВерсионированияБакета(Наименование, ОсновныеДанные, Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьНастройкийВерсионированияБакета (DB)", "S3"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат); // SKIP
@ -14988,7 +14989,7 @@
// General purpose bucket
Наименование = "opi-gpbucket3";
Результат = OPI_S3.ПолучитьНастройкийВерсионированияБакета(Наименование, ОсновныеДанные, Ложь);
Результат = OPI_S3.ПолучитьНастройкийВерсионированияБакета(Наименование, ОсновныеДанные);
// END
@ -15010,7 +15011,7 @@
// Directory bucket
Наименование = "opi-dirbucket3";
Результат = OPI_S3.УстановитьНастройкиВерсионированияБакета(Наименование, ОсновныеДанные, Статус);
Результат = OPI_S3.УстановитьНастройкиВерсионированияБакета(Наименование, ОсновныеДанные, Статус, , Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УстановитьНастройкиВерсионированияБакета (DB)", "S3"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат); // SKIP
@ -15019,7 +15020,7 @@
// General purpose bucket
Наименование = "opi-gpbucket3";
Результат = OPI_S3.УстановитьНастройкиВерсионированияБакета(Наименование, ОсновныеДанные, Статус, , Ложь);
Результат = OPI_S3.УстановитьНастройкиВерсионированияБакета(Наименование, ОсновныеДанные, Статус);
// END
@ -15092,6 +15093,33 @@
КонецПроцедуры
Процедура S3_КопироватьОбъект(ПараметрыФункции)
URL = ПараметрыФункции["S3_URL"];
AccessKey = ПараметрыФункции["S3_AccessKey"];
SecretKey = ПараметрыФункции["S3_SecretKey"];
Region = "BTC";
ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
ПутьИсточник = "picture.jpg";
БакетИсточник = "opi-gpbucket3";
ПутьПриемник = "new_picture.jpg";
БакетПриемник = "opi-dirbucket3";
Результат = OPI_S3.КопироватьОбъект(ПутьИсточник, БакетИсточник, ПутьПриемник, БакетПриемник, ОсновныеДанные);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "КопироватьОбъект", "S3");
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат);
ОсновныеДанные.Вставить("URL", ПараметрыФункции["S3_URL"]);
OPI_S3.УдалитьОбъект(ПутьПриемник, БакетПриемник, ОсновныеДанные);
КонецПроцедуры
#КонецОбласти
#КонецОбласти

View File

@ -2079,6 +2079,22 @@
КонецПроцедуры
Процедура CLI_ЯМетрика_УправлениеСчетчиками() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Metrika_Token", ПараметрыТеста);
CLI_YandexMetrika_ПолучитьСтруктуруСчетчика(ПараметрыТеста);
CLI_YandexMetrika_СоздатьСчетчик(ПараметрыТеста);
CLI_YandexMetrika_ПолучитьСчетчик(ПараметрыТеста);
CLI_YandexMetrika_ИзменитьСчетчик(ПараметрыТеста);
CLI_YandexMetrika_УдалитьСчетчик(ПараметрыТеста);
CLI_YandexMetrika_ВосстановитьСчетчик(ПараметрыТеста);
CLI_YandexMetrika_ПолучитьСписокСчетчиков(ПараметрыТеста);
CLI_YandexMetrika_УдалитьСчетчик(ПараметрыТеста);
КонецПроцедуры
#КонецОбласти
#Область S3
@ -2129,6 +2145,7 @@
CLI_S3_СоздатьБакет(ПараметрыТеста);
CLI_S3_ЗагрузитьОбъект(ПараметрыТеста);
CLI_S3_ПолучитьОписаниеОбъекта(ПараметрыТеста);
CLI_S3_КопироватьОбъект(ПараметрыТеста);
CLI_S3_УдалитьОбъект(ПараметрыТеста);
CLI_S3_УдалитьБакет(ПараметрыТеста);
@ -16439,6 +16456,191 @@
КонецПроцедуры
Процедура CLI_YandexMetrika_ПолучитьСтруктуруСчетчика(ПараметрыФункции)
Опции = Новый Структура;
Опции.Вставить("empty", Ложь);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "ПолучитьСтруктуруСчетчика", Опции);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтруктуруСчетчика", "YandexMetrika");
OPI_ПолучениеДанныхТестов.Проверка_Соответствие(Результат);
КонецПроцедуры
Процедура CLI_YandexMetrika_СоздатьСчетчик(ПараметрыФункции)
Токен = ПараметрыФункции["Metrika_Token"];
СтруктураСчетчика = Новый Структура;
СтруктураСчетчика.Вставить("autogoals_enabled", Истина);
СтруктураНастроекКода = Новый Структура;
СтруктураНастроекКода.Вставить("async" , 0);
СтруктураНастроекКода.Вставить("clickmap" , 1);
СтруктураНастроекКода.Вставить("ecommerce" , 1);
СтруктураНастроекКода.Вставить("in_one_line" , 0);
СтруктураНастроекКода.Вставить("track_hash" , 1);
СтруктураНастроекКода.Вставить("visor" , 1);
СтруктураНастроекКода.Вставить("xml_site" , 0);
СтруктураНастроекКода.Вставить("ytm" , 0);
СтруктураНастроекКода.Вставить("alternative_cdn", 1);
СтруктураИнформера = Новый Структура;
СтруктураИнформера.Вставить("color_arrow", 1);
СтруктураИнформера.Вставить("color_end" , "EFEFEFFE");
СтруктураИнформера.Вставить("color_start", "EEEEEEEE");
СтруктураИнформера.Вставить("color_text" , 0);
СтруктураИнформера.Вставить("enabled" , 1);
СтруктураИнформера.Вставить("indicator" , "uniques");
СтруктураИнформера.Вставить("size" , 2);
СтруктураИнформера.Вставить("type" , "ext");
СтруктураНастроекКода.Вставить("informer", СтруктураИнформера);
СтруктураСчетчика.Вставить("code_options", СтруктураНастроекКода);
СтруктураФлагов = Новый Структура;
СтруктураФлагов.Вставить("collect_first_party_data" , Истина);
СтруктураФлагов.Вставить("measurement_enabled" , Истина);
СтруктураФлагов.Вставить("use_in_benchmarks" , Истина);
СтруктураФлагов.Вставить("direct_allow_use_goals_without_access", Истина);
СтруктураСчетчика.Вставить("counter_flags" , СтруктураФлагов);
СтруктураСчетчика.Вставить("favorite" , 1);
СтруктураСчетчика.Вставить("filter_robots" , 2);
СтруктураСчетчика.Вставить("gdpr_agreement_accepted", 1);
СтруктураДомена = Новый Структура("site", "openintegrations.dev");
СтруктураСчетчика.Вставить("site2", СтруктураДомена);
Опции = Новый Структура;
Опции.Вставить("token" , Токен);
Опции.Вставить("fields", СтруктураСчетчика);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "СоздатьСчетчик", Опции);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьСчетчик", "YandexMetrika");
OPI_ПолучениеДанныхТестов.Проверка_МетрикаСчетчик(Результат);
IDСчетчика = Результат["counter"]["id"];
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Metrika_CounterID", IDСчетчика);
OPI_Инструменты.ДобавитьПоле("Metrika_CounterID", IDСчетчика, "Строка", ПараметрыФункции);
КонецПроцедуры
Процедура CLI_YandexMetrika_УдалитьСчетчик(ПараметрыФункции)
Токен = ПараметрыФункции["Metrika_Token"];
IDСчетчика = ПараметрыФункции["Metrika_CounterID"];
Опции = Новый Структура;
Опции.Вставить("token" , Токен);
Опции.Вставить("counter", IDСчетчика);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "УдалитьСчетчик", Опции);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьСчетчик", "YandexMetrika");
OPI_ПолучениеДанныхТестов.Проверка_МетрикаУспех(Результат);
КонецПроцедуры
Процедура CLI_YandexMetrika_ИзменитьСчетчик(ПараметрыФункции)
Токен = ПараметрыФункции["Metrika_Token"];
IDСчетчика = ПараметрыФункции["Metrika_CounterID"];
СтруктураСчетчика = Новый Структура;
СтруктураСчетчика.Вставить("autogoals_enabled", Истина);
СтруктураФлагов = Новый Структура;
СтруктураФлагов.Вставить("collect_first_party_data" , Ложь);
СтруктураФлагов.Вставить("measurement_enabled" , Ложь);
СтруктураФлагов.Вставить("use_in_benchmarks" , Ложь);
СтруктураФлагов.Вставить("direct_allow_use_goals_without_access", Ложь);
СтруктураСчетчика.Вставить("counter_flags" , СтруктураФлагов);
СтруктураСчетчика.Вставить("favorite" , 0);
СтруктураСчетчика.Вставить("filter_robots" , 1);
Опции = Новый Структура;
Опции.Вставить("token" , Токен);
Опции.Вставить("counter", IDСчетчика);
Опции.Вставить("fields" , СтруктураСчетчика);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "ИзменитьСчетчик", Опции);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИзменитьСчетчик", "YandexMetrika");
OPI_ПолучениеДанныхТестов.Проверка_МетрикаСчетчик(Результат);
КонецПроцедуры
Процедура CLI_YandexMetrika_ПолучитьСчетчик(ПараметрыФункции)
Токен = ПараметрыФункции["Metrika_Token"];
IDСчетчика = ПараметрыФункции["Metrika_CounterID"];
Опции = Новый Структура;
Опции.Вставить("token" , Токен);
Опции.Вставить("counter", IDСчетчика);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "ПолучитьСчетчик", Опции);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСчетчик", "YandexMetrika");
OPI_ПолучениеДанныхТестов.Проверка_МетрикаСчетчик(Результат);
КонецПроцедуры
Процедура CLI_YandexMetrika_ВосстановитьСчетчик(ПараметрыФункции)
Токен = ПараметрыФункции["Metrika_Token"];
IDСчетчика = ПараметрыФункции["Metrika_CounterID"];
Опции = Новый Структура;
Опции.Вставить("token" , Токен);
Опции.Вставить("counter", IDСчетчика);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "ВосстановитьСчетчик", Опции);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ВосстановитьСчетчик", "YandexMetrika");
OPI_ПолучениеДанныхТестов.Проверка_МетрикаУспех(Результат);
КонецПроцедуры
Процедура CLI_YandexMetrika_ПолучитьСписокСчетчиков(ПараметрыФункции)
Токен = ПараметрыФункции["Metrika_Token"];
IDСчетчика = ПараметрыФункции["Metrika_CounterID"];
Опции = Новый Структура;
Опции.Вставить("token" , Токен);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "ПолучитьСписокСчетчиков", Опции);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокСчетчиков", "YandexMetrika"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_МетрикаСчетчики(Результат); // SKIP
// Фильтр по списку ID
Фильтр = Новый Структура;
МассивСчетчиков = Новый Массив;
МассивСчетчиков.Добавить(IDСчетчика);
Фильтр.Вставить("counter_ids", МассивСчетчиков);
Опции = Новый Структура;
Опции.Вставить("token" , Токен);
Опции.Вставить("filter", Фильтр);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "ПолучитьСписокСчетчиков", Опции);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокСчетчиков (фильтр)", "YandexMetrika");
OPI_ПолучениеДанныхТестов.Проверка_МетрикаСчетчики(Результат);
КонецПроцедуры
#КонецОбласти
#Область S3
@ -17106,6 +17308,45 @@
КонецПроцедуры
Процедура CLI_S3_КопироватьОбъект(ПараметрыФункции)
URL = ПараметрыФункции["S3_URL"];
AccessKey = ПараметрыФункции["S3_AccessKey"];
SecretKey = ПараметрыФункции["S3_SecretKey"];
Region = "BTC";
Опции = Новый Структура;
Опции.Вставить("url" , URL);
Опции.Вставить("access", AccessKey);
Опции.Вставить("secret", SecretKey);
Опции.Вставить("region", Region);
ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
ПутьИсточник = "picture.jpg";
БакетИсточник = "opi-gpbucket3";
ПутьПриемник = "new_picture.jpg";
БакетПриемник = "opi-dirbucket3";
Опции = Новый Структура;
Опции.Вставить("sname" , ПутьИсточник);
Опции.Вставить("sbucket", БакетИсточник);
Опции.Вставить("name" , ПутьПриемник);
Опции.Вставить("bucket" , БакетПриемник);
Опции.Вставить("basic" , ОсновныеДанные);
ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "КопироватьОбъект", Опции);
Результат = OPI_S3.КопироватьОбъект(ПутьИсточник, БакетИсточник, ПутьПриемник, БакетПриемник, ОсновныеДанные);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "КопироватьОбъект", "S3");
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат);
ОсновныеДанные.Вставить("URL", ПараметрыФункции["S3_URL"]);
OPI_S3.УдалитьОбъект(ПутьПриемник, БакетПриемник, ОсновныеДанные);
КонецПроцедуры
#КонецОбласти
#КонецОбласти

View File

@ -2040,9 +2040,9 @@
КонецФункции
Функция ПолучитьОбщийМодуль(Знач Имя)
Модуль = Вычислить(Имя);
Возврат Модуль;
КонецФункции

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/core/Modules/OPI_S3.os
// OneScript: ./OInt/core/Modules/OPI_S3.os
// Lib: S3
// CLI: s3
@ -124,7 +124,7 @@
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
Функция СоздатьБакет(Знач Наименование, Знач ОсновныеДанные, Знач Каталог = Истина, Знач Заголовки = Неопределено) Экспорт
Функция СоздатьБакет(Знач Наименование, Знач ОсновныеДанные, Знач Каталог = Ложь, Знач Заголовки = Неопределено) Экспорт
Ответ = УправлениеБакетом(Наименование, ОсновныеДанные, Каталог, "PUT", Заголовки);
Возврат Ответ;
@ -145,7 +145,7 @@
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
Функция УдалитьБакет(Знач Наименование, Знач ОсновныеДанные, Знач Каталог = Истина, Знач Заголовки = Неопределено) Экспорт
Функция УдалитьБакет(Знач Наименование, Знач ОсновныеДанные, Знач Каталог = Ложь, Знач Заголовки = Неопределено) Экспорт
Ответ = УправлениеБакетом(Наименование, ОсновныеДанные, Каталог, "DELETE", Заголовки);
Возврат Ответ;
@ -169,7 +169,7 @@
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
Функция ПроверитьДоступностьБакета(Знач Наименование
, Знач ОсновныеДанные
, Знач Каталог = Истина
, Знач Каталог = Ложь
, Знач IDАккаунта = ""
, Знач Заголовки = Неопределено) Экспорт
@ -204,7 +204,7 @@
Функция УстановитьШифрованиеБакета(Знач Наименование
, Знач ОсновныеДанные
, Знач XMLКонфигурация
, Знач Каталог = Истина
, Знач Каталог = Ложь
, Знач Заголовки = Неопределено) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(XMLКонфигурация, Истина);
@ -238,7 +238,7 @@
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
Функция ПолучитьШифрованиеБакета(Знач Наименование
, Знач ОсновныеДанные
, Знач Каталог = Истина
, Знач Каталог = Ложь
, Знач Заголовки = Неопределено) Экспорт
URL = ПолучитьURLСервиса(ОсновныеДанные);
@ -270,7 +270,7 @@
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
Функция УдалитьШифрованиеБакета(Знач Наименование
, Знач ОсновныеДанные
, Знач Каталог = Истина
, Знач Каталог = Ложь
, Знач Заголовки = Неопределено) Экспорт
URL = ПолучитьURLСервиса(ОсновныеДанные);
@ -305,7 +305,7 @@
Функция УстановитьТегиБакета(Знач Наименование
, Знач ОсновныеДанные
, Знач Теги
, Знач Каталог = Истина
, Знач Каталог = Ложь
, Знач Заголовки = Неопределено) Экспорт
Теги = СформироватьСтруктуруТегов(Теги);
@ -340,7 +340,7 @@
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
Функция ПолучитьТегиБакета(Знач Наименование
, Знач ОсновныеДанные
, Знач Каталог = Истина
, Знач Каталог = Ложь
, Знач Заголовки = Неопределено) Экспорт
URL = ПолучитьURLСервиса(ОсновныеДанные);
@ -371,7 +371,7 @@
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
Функция УдалитьТегиБакета(Знач Наименование
, Знач ОсновныеДанные
, Знач Каталог = Истина
, Знач Каталог = Ложь
, Знач Заголовки = Неопределено) Экспорт
URL = ПолучитьURLСервиса(ОсновныеДанные);
@ -406,7 +406,7 @@
, Знач ОсновныеДанные
, Знач Статус = Неопределено
, Знач УдалениеMFA = Неопределено
, Знач Каталог = Истина
, Знач Каталог = Ложь
, Знач Заголовки = Неопределено) Экспорт
Теги = СформироватьСтруктуруНастроекВерсионирования(Статус, УдалениеMFA);
@ -441,7 +441,7 @@
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
Функция ПолучитьНастройкийВерсионированияБакета(Знач Наименование
, Знач ОсновныеДанные
, Знач Каталог = Истина
, Знач Каталог = Ложь
, Знач Заголовки = Неопределено) Экспорт
URL = ПолучитьURLСервиса(ОсновныеДанные);
@ -527,7 +527,7 @@
ОсновныеДанные.Вставить("URL", URL);
Ответ = ОтправитьЗапросСТелом("PUT", ОсновныеДанные, Содержимое, Заголовки);
Ответ = ОтправитьЗапрос("PUT", ОсновныеДанные, Содержимое, Заголовки);
Возврат Ответ;
@ -619,6 +619,45 @@
КонецФункции
// Копировать объект
// Копирует объект из одного расположения в другое
//
// Примечание:
// Метод в документации AWS: [CopyObject](@docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)
//
// Параметры:
// ПутьИсточник - Строка - Путь (имя) в бакете источнике - sname
// БакетИсточник - Строка - Бакет источник объекта - sbucket
// ПутьПриемник - Строка - Путь (имя) объекта в бакете приемнике - name
// БакетПриемник - Строка - Имя бакета приемника - bucket
// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
Функция КопироватьОбъект(Знач ПутьИсточник
, Знач БакетИсточник
, Знач ПутьПриемник
, Знач БакетПриемник
, Знач ОсновныеДанные
, Знач Заголовки = Неопределено) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(ПутьИсточник);
OPI_ПреобразованиеТипов.ПолучитьСтроку(БакетИсточник);
Источник = БакетИсточник + "/" + ПутьИсточник;
Источник = ?(СтрНачинаетсяС(Источник, "/"), Источник, "/" + Источник);
ЗаголовокИсточника = Новый Соответствие();
ЗаголовокИсточника.Вставить("x-amz-copy-source", Источник);
ДобавитьДополнительныеЗаголовки(Заголовки, ЗаголовокИсточника);
Ответ = ЗагрузитьОбъект(ПутьПриемник, БакетПриемник, Неопределено, ОсновныеДанные, Заголовки);
Возврат Ответ;
КонецФункции
#КонецОбласти
#КонецОбласти

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/tests/Modules/internal/OPI_Тесты.os
// OneScript: ./OInt/tests/Modules/internal/OPI_Тесты.os
// MIT License
@ -2149,6 +2149,7 @@
S3_СоздатьБакет(ПараметрыТеста);
S3_ЗагрузитьОбъект(ПараметрыТеста);
S3_ПолучитьОписаниеОбъекта(ПараметрыТеста);
S3_КопироватьОбъект(ПараметрыТеста);
S3_УдалитьОбъект(ПараметрыТеста);
S3_УдалитьБакет(ПараметрыТеста);
@ -14715,7 +14716,7 @@
// Directory bucket
Наименование = "opi-dirbucket3";
Результат = OPI_S3.СоздатьБакет(Наименование, ОсновныеДанные);
Результат = OPI_S3.СоздатьБакет(Наименование, ОсновныеДанные, Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьБакет (DB)", "S3"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат); // SKIP
@ -14724,7 +14725,7 @@
// General purpose bucket
Наименование = "opi-gpbucket3";
Результат = OPI_S3.СоздатьБакет(Наименование, ОсновныеДанные, Ложь);
Результат = OPI_S3.СоздатьБакет(Наименование, ОсновныеДанные);
// END
@ -14745,7 +14746,7 @@
// Directory bucket
Наименование = "opi-dirbucket3";
Результат = OPI_S3.УдалитьБакет(Наименование, ОсновныеДанные);
Результат = OPI_S3.УдалитьБакет(Наименование, ОсновныеДанные, Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьБакет (DB)", "S3"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат); // SKIP
@ -14754,7 +14755,7 @@
// General purpose bucket
Наименование = "opi-gpbucket3";
Результат = OPI_S3.УдалитьБакет(Наименование, ОсновныеДанные, Ложь);
Результат = OPI_S3.УдалитьБакет(Наименование, ОсновныеДанные);
// END
@ -14790,13 +14791,13 @@
ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
Наименование = "opi-dirbucket3";
Результат = OPI_S3.ПроверитьДоступностьБакета(Наименование, ОсновныеДанные, Истина);
Результат = OPI_S3.ПроверитьДоступностьБакета(Наименование, ОсновныеДанные);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПроверитьДоступностьБакета", "S3"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат); // SKIP
ОсновныеДанные.Вставить("URL", ПараметрыФункции["S3_URL"]); // SKIP
Результат = OPI_S3.ПроверитьДоступностьБакета(Наименование, ОсновныеДанные, Истина, "1234");
Результат = OPI_S3.ПроверитьДоступностьБакета(Наименование, ОсновныеДанные, , "1234");
// END
@ -14815,7 +14816,7 @@
ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
Наименование = "opi-newbucket2";
Результат = OPI_S3.ПолучитьШифрованиеБакета(Наименование, ОсновныеДанные, Ложь);
Результат = OPI_S3.ПолучитьШифрованиеБакета(Наименование, ОсновныеДанные);
// END
@ -14834,7 +14835,7 @@
ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
Наименование = "opi-newbucket2";
Результат = OPI_S3.УдалитьШифрованиеБакета(Наименование, ОсновныеДанные, Ложь);
Результат = OPI_S3.УдалитьШифрованиеБакета(Наименование, ОсновныеДанные);
// END
@ -14860,7 +14861,7 @@
| </Rule>
|</ServerSideEncryptionConfiguration>";
Результат = OPI_S3.УстановитьШифрованиеБакета(Наименование, ОсновныеДанные, XMLКонфигурация, Ложь);
Результат = OPI_S3.УстановитьШифрованиеБакета(Наименование, ОсновныеДанные, XMLКонфигурация);
// END
@ -14882,7 +14883,7 @@
// Directory bucket
Наименование = "opi-dirbucket3";
Результат = OPI_S3.ПолучитьТегиБакета(Наименование, ОсновныеДанные);
Результат = OPI_S3.ПолучитьТегиБакета(Наименование, ОсновныеДанные, Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьТегиБакета (DB)", "S3"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат); // SKIP
@ -14891,7 +14892,7 @@
// General purpose bucket
Наименование = "opi-gpbucket3";
Результат = OPI_S3.ПолучитьТегиБакета(Наименование, ОсновныеДанные, Ложь);
Результат = OPI_S3.ПолучитьТегиБакета(Наименование, ОсновныеДанные);
// END
@ -14916,7 +14917,7 @@
// Directory bucket
Наименование = "opi-dirbucket3";
Результат = OPI_S3.УстановитьТегиБакета(Наименование, ОсновныеДанные, СтруктураТегов);
Результат = OPI_S3.УстановитьТегиБакета(Наименование, ОсновныеДанные, СтруктураТегов, Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УстановитьТегиБакета (DB)", "S3"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат); // SKIP
@ -14925,7 +14926,7 @@
// General purpose bucket
Наименование = "opi-gpbucket3";
Результат = OPI_S3.УстановитьТегиБакета(Наименование, ОсновныеДанные, СтруктураТегов, Ложь);
Результат = OPI_S3.УстановитьТегиБакета(Наименование, ОсновныеДанные, СтруктураТегов);
// END
@ -14946,7 +14947,7 @@
// Directory bucket
Наименование = "opi-dirbucket3";
Результат = OPI_S3.УдалитьТегиБакета(Наименование, ОсновныеДанные);
Результат = OPI_S3.УдалитьТегиБакета(Наименование, ОсновныеДанные, Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьТегиБакета (DB)", "S3"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат); // SKIP
@ -14955,7 +14956,7 @@
// General purpose bucket
Наименование = "opi-gpbucket3";
Результат = OPI_S3.УдалитьТегиБакета(Наименование, ОсновныеДанные, Ложь);
Результат = OPI_S3.УдалитьТегиБакета(Наименование, ОсновныеДанные);
// END
@ -14979,7 +14980,7 @@
// Directory bucket
Наименование = "opi-dirbucket3";
Результат = OPI_S3.ПолучитьНастройкийВерсионированияБакета(Наименование, ОсновныеДанные);
Результат = OPI_S3.ПолучитьНастройкийВерсионированияБакета(Наименование, ОсновныеДанные, Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьНастройкийВерсионированияБакета (DB)", "S3"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат); // SKIP
@ -14988,7 +14989,7 @@
// General purpose bucket
Наименование = "opi-gpbucket3";
Результат = OPI_S3.ПолучитьНастройкийВерсионированияБакета(Наименование, ОсновныеДанные, Ложь);
Результат = OPI_S3.ПолучитьНастройкийВерсионированияБакета(Наименование, ОсновныеДанные);
// END
@ -15010,7 +15011,7 @@
// Directory bucket
Наименование = "opi-dirbucket3";
Результат = OPI_S3.УстановитьНастройкиВерсионированияБакета(Наименование, ОсновныеДанные, Статус);
Результат = OPI_S3.УстановитьНастройкиВерсионированияБакета(Наименование, ОсновныеДанные, Статус, , Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УстановитьНастройкиВерсионированияБакета (DB)", "S3"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат); // SKIP
@ -15019,7 +15020,7 @@
// General purpose bucket
Наименование = "opi-gpbucket3";
Результат = OPI_S3.УстановитьНастройкиВерсионированияБакета(Наименование, ОсновныеДанные, Статус, , Ложь);
Результат = OPI_S3.УстановитьНастройкиВерсионированияБакета(Наименование, ОсновныеДанные, Статус);
// END
@ -15092,6 +15093,33 @@
КонецПроцедуры
Процедура S3_КопироватьОбъект(ПараметрыФункции)
URL = ПараметрыФункции["S3_URL"];
AccessKey = ПараметрыФункции["S3_AccessKey"];
SecretKey = ПараметрыФункции["S3_SecretKey"];
Region = "BTC";
ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
ПутьИсточник = "picture.jpg";
БакетИсточник = "opi-gpbucket3";
ПутьПриемник = "new_picture.jpg";
БакетПриемник = "opi-dirbucket3";
Результат = OPI_S3.КопироватьОбъект(ПутьИсточник, БакетИсточник, ПутьПриемник, БакетПриемник, ОсновныеДанные);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "КопироватьОбъект", "S3");
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат);
ОсновныеДанные.Вставить("URL", ПараметрыФункции["S3_URL"]);
OPI_S3.УдалитьОбъект(ПутьПриемник, БакетПриемник, ОсновныеДанные);
КонецПроцедуры
#КонецОбласти
#КонецОбласти

View File

@ -2079,6 +2079,22 @@
КонецПроцедуры
Процедура CLI_ЯМетрика_УправлениеСчетчиками() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Metrika_Token", ПараметрыТеста);
CLI_YandexMetrika_ПолучитьСтруктуруСчетчика(ПараметрыТеста);
CLI_YandexMetrika_СоздатьСчетчик(ПараметрыТеста);
CLI_YandexMetrika_ПолучитьСчетчик(ПараметрыТеста);
CLI_YandexMetrika_ИзменитьСчетчик(ПараметрыТеста);
CLI_YandexMetrika_УдалитьСчетчик(ПараметрыТеста);
CLI_YandexMetrika_ВосстановитьСчетчик(ПараметрыТеста);
CLI_YandexMetrika_ПолучитьСписокСчетчиков(ПараметрыТеста);
CLI_YandexMetrika_УдалитьСчетчик(ПараметрыТеста);
КонецПроцедуры
#КонецОбласти
#Область S3
@ -2129,6 +2145,7 @@
CLI_S3_СоздатьБакет(ПараметрыТеста);
CLI_S3_ЗагрузитьОбъект(ПараметрыТеста);
CLI_S3_ПолучитьОписаниеОбъекта(ПараметрыТеста);
CLI_S3_КопироватьОбъект(ПараметрыТеста);
CLI_S3_УдалитьОбъект(ПараметрыТеста);
CLI_S3_УдалитьБакет(ПараметрыТеста);
@ -16439,6 +16456,191 @@
КонецПроцедуры
Процедура CLI_YandexMetrika_ПолучитьСтруктуруСчетчика(ПараметрыФункции)
Опции = Новый Структура;
Опции.Вставить("empty", Ложь);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "ПолучитьСтруктуруСчетчика", Опции);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтруктуруСчетчика", "YandexMetrika");
OPI_ПолучениеДанныхТестов.Проверка_Соответствие(Результат);
КонецПроцедуры
Процедура CLI_YandexMetrika_СоздатьСчетчик(ПараметрыФункции)
Токен = ПараметрыФункции["Metrika_Token"];
СтруктураСчетчика = Новый Структура;
СтруктураСчетчика.Вставить("autogoals_enabled", Истина);
СтруктураНастроекКода = Новый Структура;
СтруктураНастроекКода.Вставить("async" , 0);
СтруктураНастроекКода.Вставить("clickmap" , 1);
СтруктураНастроекКода.Вставить("ecommerce" , 1);
СтруктураНастроекКода.Вставить("in_one_line" , 0);
СтруктураНастроекКода.Вставить("track_hash" , 1);
СтруктураНастроекКода.Вставить("visor" , 1);
СтруктураНастроекКода.Вставить("xml_site" , 0);
СтруктураНастроекКода.Вставить("ytm" , 0);
СтруктураНастроекКода.Вставить("alternative_cdn", 1);
СтруктураИнформера = Новый Структура;
СтруктураИнформера.Вставить("color_arrow", 1);
СтруктураИнформера.Вставить("color_end" , "EFEFEFFE");
СтруктураИнформера.Вставить("color_start", "EEEEEEEE");
СтруктураИнформера.Вставить("color_text" , 0);
СтруктураИнформера.Вставить("enabled" , 1);
СтруктураИнформера.Вставить("indicator" , "uniques");
СтруктураИнформера.Вставить("size" , 2);
СтруктураИнформера.Вставить("type" , "ext");
СтруктураНастроекКода.Вставить("informer", СтруктураИнформера);
СтруктураСчетчика.Вставить("code_options", СтруктураНастроекКода);
СтруктураФлагов = Новый Структура;
СтруктураФлагов.Вставить("collect_first_party_data" , Истина);
СтруктураФлагов.Вставить("measurement_enabled" , Истина);
СтруктураФлагов.Вставить("use_in_benchmarks" , Истина);
СтруктураФлагов.Вставить("direct_allow_use_goals_without_access", Истина);
СтруктураСчетчика.Вставить("counter_flags" , СтруктураФлагов);
СтруктураСчетчика.Вставить("favorite" , 1);
СтруктураСчетчика.Вставить("filter_robots" , 2);
СтруктураСчетчика.Вставить("gdpr_agreement_accepted", 1);
СтруктураДомена = Новый Структура("site", "openintegrations.dev");
СтруктураСчетчика.Вставить("site2", СтруктураДомена);
Опции = Новый Структура;
Опции.Вставить("token" , Токен);
Опции.Вставить("fields", СтруктураСчетчика);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "СоздатьСчетчик", Опции);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьСчетчик", "YandexMetrika");
OPI_ПолучениеДанныхТестов.Проверка_МетрикаСчетчик(Результат);
IDСчетчика = Результат["counter"]["id"];
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Metrika_CounterID", IDСчетчика);
OPI_Инструменты.ДобавитьПоле("Metrika_CounterID", IDСчетчика, "Строка", ПараметрыФункции);
КонецПроцедуры
Процедура CLI_YandexMetrika_УдалитьСчетчик(ПараметрыФункции)
Токен = ПараметрыФункции["Metrika_Token"];
IDСчетчика = ПараметрыФункции["Metrika_CounterID"];
Опции = Новый Структура;
Опции.Вставить("token" , Токен);
Опции.Вставить("counter", IDСчетчика);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "УдалитьСчетчик", Опции);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьСчетчик", "YandexMetrika");
OPI_ПолучениеДанныхТестов.Проверка_МетрикаУспех(Результат);
КонецПроцедуры
Процедура CLI_YandexMetrika_ИзменитьСчетчик(ПараметрыФункции)
Токен = ПараметрыФункции["Metrika_Token"];
IDСчетчика = ПараметрыФункции["Metrika_CounterID"];
СтруктураСчетчика = Новый Структура;
СтруктураСчетчика.Вставить("autogoals_enabled", Истина);
СтруктураФлагов = Новый Структура;
СтруктураФлагов.Вставить("collect_first_party_data" , Ложь);
СтруктураФлагов.Вставить("measurement_enabled" , Ложь);
СтруктураФлагов.Вставить("use_in_benchmarks" , Ложь);
СтруктураФлагов.Вставить("direct_allow_use_goals_without_access", Ложь);
СтруктураСчетчика.Вставить("counter_flags" , СтруктураФлагов);
СтруктураСчетчика.Вставить("favorite" , 0);
СтруктураСчетчика.Вставить("filter_robots" , 1);
Опции = Новый Структура;
Опции.Вставить("token" , Токен);
Опции.Вставить("counter", IDСчетчика);
Опции.Вставить("fields" , СтруктураСчетчика);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "ИзменитьСчетчик", Опции);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИзменитьСчетчик", "YandexMetrika");
OPI_ПолучениеДанныхТестов.Проверка_МетрикаСчетчик(Результат);
КонецПроцедуры
Процедура CLI_YandexMetrika_ПолучитьСчетчик(ПараметрыФункции)
Токен = ПараметрыФункции["Metrika_Token"];
IDСчетчика = ПараметрыФункции["Metrika_CounterID"];
Опции = Новый Структура;
Опции.Вставить("token" , Токен);
Опции.Вставить("counter", IDСчетчика);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "ПолучитьСчетчик", Опции);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСчетчик", "YandexMetrika");
OPI_ПолучениеДанныхТестов.Проверка_МетрикаСчетчик(Результат);
КонецПроцедуры
Процедура CLI_YandexMetrika_ВосстановитьСчетчик(ПараметрыФункции)
Токен = ПараметрыФункции["Metrika_Token"];
IDСчетчика = ПараметрыФункции["Metrika_CounterID"];
Опции = Новый Структура;
Опции.Вставить("token" , Токен);
Опции.Вставить("counter", IDСчетчика);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "ВосстановитьСчетчик", Опции);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ВосстановитьСчетчик", "YandexMetrika");
OPI_ПолучениеДанныхТестов.Проверка_МетрикаУспех(Результат);
КонецПроцедуры
Процедура CLI_YandexMetrika_ПолучитьСписокСчетчиков(ПараметрыФункции)
Токен = ПараметрыФункции["Metrika_Token"];
IDСчетчика = ПараметрыФункции["Metrika_CounterID"];
Опции = Новый Структура;
Опции.Вставить("token" , Токен);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "ПолучитьСписокСчетчиков", Опции);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокСчетчиков", "YandexMetrika"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_МетрикаСчетчики(Результат); // SKIP
// Фильтр по списку ID
Фильтр = Новый Структура;
МассивСчетчиков = Новый Массив;
МассивСчетчиков.Добавить(IDСчетчика);
Фильтр.Вставить("counter_ids", МассивСчетчиков);
Опции = Новый Структура;
Опции.Вставить("token" , Токен);
Опции.Вставить("filter", Фильтр);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "ПолучитьСписокСчетчиков", Опции);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокСчетчиков (фильтр)", "YandexMetrika");
OPI_ПолучениеДанныхТестов.Проверка_МетрикаСчетчики(Результат);
КонецПроцедуры
#КонецОбласти
#Область S3
@ -17106,6 +17308,45 @@
КонецПроцедуры
Процедура CLI_S3_КопироватьОбъект(ПараметрыФункции)
URL = ПараметрыФункции["S3_URL"];
AccessKey = ПараметрыФункции["S3_AccessKey"];
SecretKey = ПараметрыФункции["S3_SecretKey"];
Region = "BTC";
Опции = Новый Структура;
Опции.Вставить("url" , URL);
Опции.Вставить("access", AccessKey);
Опции.Вставить("secret", SecretKey);
Опции.Вставить("region", Region);
ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
ПутьИсточник = "picture.jpg";
БакетИсточник = "opi-gpbucket3";
ПутьПриемник = "new_picture.jpg";
БакетПриемник = "opi-dirbucket3";
Опции = Новый Структура;
Опции.Вставить("sname" , ПутьИсточник);
Опции.Вставить("sbucket", БакетИсточник);
Опции.Вставить("name" , ПутьПриемник);
Опции.Вставить("bucket" , БакетПриемник);
Опции.Вставить("basic" , ОсновныеДанные);
ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "КопироватьОбъект", Опции);
Результат = OPI_S3.КопироватьОбъект(ПутьИсточник, БакетИсточник, ПутьПриемник, БакетПриемник, ОсновныеДанные);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "КопироватьОбъект", "S3");
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат);
ОсновныеДанные.Вставить("URL", ПараметрыФункции["S3_URL"]);
OPI_S3.УдалитьОбъект(ПутьПриемник, БакетПриемник, ОсновныеДанные);
КонецПроцедуры
#КонецОбласти
#КонецОбласти