1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2024-11-21 17:56:56 +02:00

S3: Список объектов и список версий в бакете

This commit is contained in:
Anton 2024-11-18 20:49:20 +03:00
parent da12185959
commit fcbce08ae3
8 changed files with 5857 additions and 5611 deletions

File diff suppressed because it is too large Load Diff

View File

@ -464,7 +464,7 @@
//
// Параметры:
// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
// Префикс - Строка - Отбор по началу имени, если необходимо - prefix
// Префикс - Строка - Отбор по префиксу, если необходимо - prefix
// Регион - Строка - Отбор по региону бакета, если необходимо - region
// ТокенСтраницы - Строка - Токен страницы, если используется пагинация - ctoken
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
@ -778,6 +778,84 @@
КонецФункции
// Получить список объектов
// Получает список объектов в выбранном бакете
//
// Примечание:
// Метод в документации AWS: [ListObjectsV2](@docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html)
//
// Параметры:
// Бакет - Строка - Наименование бакета - bucket
// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
// Префикс - Строка - Отбор по префиксу, если необходимо - prefix
// ТокенСтраницы - Строка - Токен страницы, если используется пагинация - ctoken
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
Функция ПолучитьСписокОбъектов(Знач Бакет
, Знач ОсновныеДанные
, Знач Префикс = ""
, Знач ТокенСтраницы = ""
, Знач Заголовки = Неопределено) Экспорт
URL = ПолучитьURLСервиса(ОсновныеДанные);
URL = СформироватьURLБакета(URL, Бакет, Ложь);
Параметры = Новый Соответствие;
OPI_Инструменты.ДобавитьПоле("list-type" , 2 , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("max-keys" , 250 , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("continuation-token", ТокенСтраницы, "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("prefix" , Префикс , "Строка", Параметры);
URL = URL + OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
ОсновныеДанные.Вставить("URL", URL);
Ответ = ОтправитьЗапросБезТела("GET", ОсновныеДанные, Заголовки);
Возврат Ответ;
КонецФункции
// Получить список версий объектов
// Получает список всех версий объектов в выбранном бакете
//
// Примечание:
// Метод в документации AWS: [ListObjectVersions](@docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectVersions.html)
//
// Параметры:
// Бакет - Строка - Наименование бакета - bucket
// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
// Префикс - Строка - Отбор по префиксу, если необходимо - prefix
// Версия - Строка - ID версии начала списка - ver
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
Функция ПолучитьСписокВерсийОбъектов(Знач Бакет
, Знач ОсновныеДанные
, Знач Префикс = ""
, Знач Версия = ""
, Знач Заголовки = Неопределено) Экспорт
URL = ПолучитьURLСервиса(ОсновныеДанные);
URL = СформироватьURLБакета(URL, Бакет, Ложь);
URL = URL + "?versions";
Параметры = Новый Соответствие;
OPI_Инструменты.ДобавитьПоле("max-keys" , 250 , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("version-id-marker", Версия , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("prefix" , Префикс, "Строка", Параметры);
URL = URL + OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры, , Ложь);
ОсновныеДанные.Вставить("URL", URL);
Ответ = ОтправитьЗапросБезТела("GET", ОсновныеДанные, Заголовки);
Возврат Ответ;
КонецФункции
#КонецОбласти
#КонецОбласти

View File

@ -2153,6 +2153,8 @@
S3_УстановитьТегиОбъекта(ПараметрыТеста);
S3_ПолучитьТегиОбъекта(ПараметрыТеста);
S3_УдалитьТегиОбъекта(ПараметрыТеста);
S3_ПолучитьСписокОбъектов(ПараметрыТеста);
S3_ПолучитьСписокВерсийОбъектов(ПараметрыТеста);
S3_УдалитьОбъект(ПараметрыТеста);
S3_УдалитьБакет(ПараметрыТеста);
@ -15191,6 +15193,45 @@
КонецПроцедуры
Процедура S3_ПолучитьСписокОбъектов(ПараметрыФункции)
URL = ПараметрыФункции["S3_URL"];
AccessKey = ПараметрыФункции["S3_AccessKey"];
SecretKey = ПараметрыФункции["S3_SecretKey"];
Region = "BTC";
ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
Бакет = "opi-gpbucket3";
Результат = OPI_S3.ПолучитьСписокОбъектов(Бакет, ОсновныеДанные);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокОбъектов", "S3");
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат);
КонецПроцедуры
Процедура S3_ПолучитьСписокВерсийОбъектов(ПараметрыФункции)
URL = ПараметрыФункции["S3_URL"];
AccessKey = ПараметрыФункции["S3_AccessKey"];
SecretKey = ПараметрыФункции["S3_SecretKey"];
Region = "BTC";
ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
Бакет = "opi-gpbucket3";
Префикс = "pic";
Результат = OPI_S3.ПолучитьСписокВерсийОбъектов(Бакет, ОсновныеДанные, Префикс);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокВерсийОбъектов", "S3");
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат);
КонецПроцедуры
#КонецОбласти
#КонецОбласти

View File

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

View File

@ -344,13 +344,13 @@
#Область Служебные
Функция ПараметрыЗапросаВСтроку(Знач Параметры, Знач ОтдельныеЭлементыМассивов = Ложь) Экспорт
Функция ПараметрыЗапросаВСтроку(Знач Параметры, Знач ОтдельныеЭлементыМассивов = Ложь, Знач Начало = Истина) Экспорт
Если Параметры.Количество() = 0 Тогда
Возврат "";
КонецЕсли;
СтрокаПараметров = "?";
СтрокаПараметров = ?(Начало, "?", "&");
Для Каждого Параметр Из Параметры Цикл

View File

@ -464,7 +464,7 @@
//
// Параметры:
// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
// Префикс - Строка - Отбор по началу имени, если необходимо - prefix
// Префикс - Строка - Отбор по префиксу, если необходимо - prefix
// Регион - Строка - Отбор по региону бакета, если необходимо - region
// ТокенСтраницы - Строка - Токен страницы, если используется пагинация - ctoken
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
@ -778,6 +778,84 @@
КонецФункции
// Получить список объектов
// Получает список объектов в выбранном бакете
//
// Примечание:
// Метод в документации AWS: [ListObjectsV2](@docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html)
//
// Параметры:
// Бакет - Строка - Наименование бакета - bucket
// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
// Префикс - Строка - Отбор по префиксу, если необходимо - prefix
// ТокенСтраницы - Строка - Токен страницы, если используется пагинация - ctoken
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
Функция ПолучитьСписокОбъектов(Знач Бакет
, Знач ОсновныеДанные
, Знач Префикс = ""
, Знач ТокенСтраницы = ""
, Знач Заголовки = Неопределено) Экспорт
URL = ПолучитьURLСервиса(ОсновныеДанные);
URL = СформироватьURLБакета(URL, Бакет, Ложь);
Параметры = Новый Соответствие;
OPI_Инструменты.ДобавитьПоле("list-type" , 2 , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("max-keys" , 250 , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("continuation-token", ТокенСтраницы, "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("prefix" , Префикс , "Строка", Параметры);
URL = URL + OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
ОсновныеДанные.Вставить("URL", URL);
Ответ = ОтправитьЗапросБезТела("GET", ОсновныеДанные, Заголовки);
Возврат Ответ;
КонецФункции
// Получить список версий объектов
// Получает список всех версий объектов в выбранном бакете
//
// Примечание:
// Метод в документации AWS: [ListObjectVersions](@docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectVersions.html)
//
// Параметры:
// Бакет - Строка - Наименование бакета - bucket
// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
// Префикс - Строка - Отбор по префиксу, если необходимо - prefix
// Версия - Строка - ID версии начала списка - ver
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
Функция ПолучитьСписокВерсийОбъектов(Знач Бакет
, Знач ОсновныеДанные
, Знач Префикс = ""
, Знач Версия = ""
, Знач Заголовки = Неопределено) Экспорт
URL = ПолучитьURLСервиса(ОсновныеДанные);
URL = СформироватьURLБакета(URL, Бакет, Ложь);
URL = URL + "?versions";
Параметры = Новый Соответствие;
OPI_Инструменты.ДобавитьПоле("max-keys" , 250 , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("version-id-marker", Версия , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("prefix" , Префикс, "Строка", Параметры);
URL = URL + OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры, , Ложь);
ОсновныеДанные.Вставить("URL", URL);
Ответ = ОтправитьЗапросБезТела("GET", ОсновныеДанные, Заголовки);
Возврат Ответ;
КонецФункции
#КонецОбласти
#КонецОбласти

View File

@ -344,13 +344,13 @@
#Область Служебные
Функция ПараметрыЗапросаВСтроку(Знач Параметры, Знач ОтдельныеЭлементыМассивов = Ложь) Экспорт
Функция ПараметрыЗапросаВСтроку(Знач Параметры, Знач ОтдельныеЭлементыМассивов = Ложь, Знач Начало = Истина) Экспорт
Если Параметры.Количество() = 0 Тогда
Возврат "";
КонецЕсли;
СтрокаПараметров = "?";
СтрокаПараметров = ?(Начало, "?", "&");
Для Каждого Параметр Из Параметры Цикл

View File

@ -2153,6 +2153,8 @@
S3_УстановитьТегиОбъекта(ПараметрыТеста);
S3_ПолучитьТегиОбъекта(ПараметрыТеста);
S3_УдалитьТегиОбъекта(ПараметрыТеста);
S3_ПолучитьСписокОбъектов(ПараметрыТеста);
S3_ПолучитьСписокВерсийОбъектов(ПараметрыТеста);
S3_УдалитьОбъект(ПараметрыТеста);
S3_УдалитьБакет(ПараметрыТеста);
@ -15191,6 +15193,45 @@
КонецПроцедуры
Процедура S3_ПолучитьСписокОбъектов(ПараметрыФункции)
URL = ПараметрыФункции["S3_URL"];
AccessKey = ПараметрыФункции["S3_AccessKey"];
SecretKey = ПараметрыФункции["S3_SecretKey"];
Region = "BTC";
ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
Бакет = "opi-gpbucket3";
Результат = OPI_S3.ПолучитьСписокОбъектов(Бакет, ОсновныеДанные);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокОбъектов", "S3");
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат);
КонецПроцедуры
Процедура S3_ПолучитьСписокВерсийОбъектов(ПараметрыФункции)
URL = ПараметрыФункции["S3_URL"];
AccessKey = ПараметрыФункции["S3_AccessKey"];
SecretKey = ПараметрыФункции["S3_SecretKey"];
Region = "BTC";
ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
Бакет = "opi-gpbucket3";
Префикс = "pic";
Результат = OPI_S3.ПолучитьСписокВерсийОбъектов(Бакет, ОсновныеДанные, Префикс);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокВерсийОбъектов", "S3");
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат);
КонецПроцедуры
#КонецОбласти
#КонецОбласти