mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-03-17 21:08:03 +02:00
S3: Помещение и удаление объекта, заголовки в выводе
This commit is contained in:
parent
e589a14b91
commit
9a29efa0d0
@ -58,13 +58,15 @@ This library uses its own response format to provide data received from the serv
|
||||
|
||||
{
|
||||
"status": 200,
|
||||
"response": {}
|
||||
"response": {},
|
||||
"headers": {}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
+ The **status** field contains the HTTP response status code
|
||||
+ The **response** field contains the body of the original S3 response, previously converted from XML to JSON
|
||||
+ The **headers** field contains the headers from the original response
|
||||
|
||||
|
||||
The response was modified to JSON to simplify its usage, as the original XML format was more complex to work with
|
||||
|
@ -58,12 +58,14 @@ sidebar_class_name: S3
|
||||
|
||||
{
|
||||
"status": 200,
|
||||
"response": {}
|
||||
"response": {},
|
||||
"headers": {}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
+ В поле **status** записывается код состояния HTTP-ответа
|
||||
+ В поле **response** помещается тело оригинального ответа S3, предварительно преобразованное из XML в JSON
|
||||
+ В поле **headers** помещаются заголовки из оригинального ответа
|
||||
|
||||
Это сделано для упрощения работы с библиотекой, так как формат XML более громоздок и сложен в работе, по сравнению с JSON
|
||||
|
@ -1 +0,0 @@
|
||||
|
@ -1 +0,0 @@
|
||||
|
@ -1,8 +0,0 @@
|
||||
{
|
||||
"status": 200,
|
||||
"response": {
|
||||
"VersioningConfiguration": {
|
||||
"Status": "Enabled"
|
||||
}
|
||||
}
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
{
|
||||
"status": 200,
|
||||
"response": {
|
||||
"VersioningConfiguration": {
|
||||
"Status": "Enabled"
|
||||
}
|
||||
}
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
{
|
||||
"status": 200,
|
||||
"response": {
|
||||
"ListAllMyBucketsResult": {
|
||||
"Owner": {
|
||||
"ID": "02d6176db174dc93cb1b899f7c6078f08654445fe8cf1b6ce98d8855f66bdbf4",
|
||||
"DisplayName": "minio"
|
||||
},
|
||||
"Buckets": {
|
||||
"Bucket": [
|
||||
{
|
||||
"Name": "newbucket2",
|
||||
"CreationDate": "2024-11-13T18:59:09.139Z"
|
||||
},
|
||||
{
|
||||
"Name": "opi-dirbucket3",
|
||||
"CreationDate": "2024-11-15T11:13:55.166Z"
|
||||
},
|
||||
{
|
||||
"Name": "opi-gpbucket3",
|
||||
"CreationDate": "2024-11-15T11:13:57.731Z"
|
||||
},
|
||||
{
|
||||
"Name": "opi-newbucket2",
|
||||
"CreationDate": "2024-11-14T06:04:12.769Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
{
|
||||
"URL": "storage-155.s3hoster.by",
|
||||
"AccessKey": "BRN5RKJE67YCVDZRRQVI",
|
||||
"SecretKey": "***",
|
||||
"Region": "BTC",
|
||||
"Service": "s3"
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
{
|
||||
"status": 200,
|
||||
"response": {
|
||||
"Tagging": {
|
||||
"TagSet": {
|
||||
"Tag": [
|
||||
{
|
||||
"Key": "MyTag2",
|
||||
"Value": "AnotherOne"
|
||||
},
|
||||
{
|
||||
"Key": "MyTag1",
|
||||
"Value": "SomeValue"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
{
|
||||
"status": 200,
|
||||
"response": {
|
||||
"Tagging": {
|
||||
"TagSet": {
|
||||
"Tag": [
|
||||
{
|
||||
"Key": "MyTag1",
|
||||
"Value": "SomeValue"
|
||||
},
|
||||
{
|
||||
"Key": "MyTag2",
|
||||
"Value": "AnotherOne"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1 +0,0 @@
|
||||
|
@ -1,4 +0,0 @@
|
||||
{
|
||||
"status": 404,
|
||||
"response": {}
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
{
|
||||
"status": 200,
|
||||
"response": {}
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
{
|
||||
"status": 200,
|
||||
"response": {}
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
{
|
||||
"status": 200,
|
||||
"response": {}
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
{
|
||||
"status": 204,
|
||||
"response": {}
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
{
|
||||
"status": 204,
|
||||
"response": {}
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
{
|
||||
"status": 204,
|
||||
"response": {}
|
||||
}
|
@ -1 +0,0 @@
|
||||
НЕ JSON: Соответствие
|
@ -1,4 +0,0 @@
|
||||
{
|
||||
"status": 204,
|
||||
"response": {}
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
{
|
||||
"status": 204,
|
||||
"response": {}
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
{
|
||||
"status": 200,
|
||||
"response": {}
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
{
|
||||
"status": 200,
|
||||
"response": {}
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
{
|
||||
"status": 200,
|
||||
"response": {}
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
{
|
||||
"status": 200,
|
||||
"response": {}
|
||||
}
|
@ -1 +0,0 @@
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -37,6 +37,7 @@
|
||||
//@skip-check module-structure-method-in-regions
|
||||
//@skip-check wrong-string-literal-content
|
||||
//@skip-check method-too-many-params
|
||||
//@skip-check constructor-function-return-section
|
||||
|
||||
// Раскомментировать, если выполняется OneScript
|
||||
#Использовать "../../tools"
|
||||
@ -79,7 +80,7 @@
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция ОтправитьЗапросБезТела(Знач Метод, Знач ОсновныеДанные, Знач Заголовки = Неопределено) Экспорт
|
||||
|
||||
Ответ = ОтправитьЗапрос(Метод, ОсновныеДанные, , Заголовки);
|
||||
@ -97,7 +98,7 @@
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция ОтправитьЗапросСТелом(Знач Метод, Знач ОсновныеДанные, Знач Тело, Знач Заголовки = Неопределено) Экспорт
|
||||
|
||||
Ответ = ОтправитьЗапрос(Метод, ОсновныеДанные, Тело, Заголовки);
|
||||
@ -122,7 +123,7 @@
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция СоздатьБакет(Знач Наименование, Знач ОсновныеДанные, Знач Каталог = Истина, Знач Заголовки = Неопределено) Экспорт
|
||||
|
||||
Ответ = УправлениеБакетом(Наименование, ОсновныеДанные, Каталог, "PUT", Заголовки);
|
||||
@ -143,7 +144,7 @@
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция УдалитьБакет(Знач Наименование, Знач ОсновныеДанные, Знач Каталог = Истина, Знач Заголовки = Неопределено) Экспорт
|
||||
|
||||
Ответ = УправлениеБакетом(Наименование, ОсновныеДанные, Каталог, "DELETE", Заголовки);
|
||||
@ -165,7 +166,7 @@
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция ПроверитьДоступностьБакета(Знач Наименование
|
||||
, Знач ОсновныеДанные
|
||||
, Знач Каталог = Истина
|
||||
@ -199,7 +200,7 @@
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция УстановитьШифрованиеБакета(Знач Наименование
|
||||
, Знач ОсновныеДанные
|
||||
, Знач XMLКонфигурация
|
||||
@ -234,7 +235,7 @@
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция ПолучитьШифрованиеБакета(Знач Наименование
|
||||
, Знач ОсновныеДанные
|
||||
, Знач Каталог = Истина
|
||||
@ -266,7 +267,7 @@
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция УдалитьШифрованиеБакета(Знач Наименование
|
||||
, Знач ОсновныеДанные
|
||||
, Знач Каталог = Истина
|
||||
@ -300,7 +301,7 @@
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция УстановитьТегиБакета(Знач Наименование
|
||||
, Знач ОсновныеДанные
|
||||
, Знач Теги
|
||||
@ -336,7 +337,7 @@
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция ПолучитьТегиБакета(Знач Наименование
|
||||
, Знач ОсновныеДанные
|
||||
, Знач Каталог = Истина
|
||||
@ -367,7 +368,7 @@
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция УдалитьТегиБакета(Знач Наименование
|
||||
, Знач ОсновныеДанные
|
||||
, Знач Каталог = Истина
|
||||
@ -400,7 +401,7 @@
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция УстановитьНастройкиВерсионированияБакета(Знач Наименование
|
||||
, Знач ОсновныеДанные
|
||||
, Знач Статус = Неопределено
|
||||
@ -437,7 +438,7 @@
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция ПолучитьНастройкийВерсионированияБакета(Знач Наименование
|
||||
, Знач ОсновныеДанные
|
||||
, Знач Каталог = Истина
|
||||
@ -469,7 +470,7 @@
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция ПолучитьСписокБакетов(Знач ОсновныеДанные
|
||||
, Знач Префикс = ""
|
||||
, Знач Регион = ""
|
||||
@ -495,6 +496,130 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область РаботаСОбъектами
|
||||
|
||||
// Загрузить объект
|
||||
// Загружает файл в бакет
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации AWS: [PutObject](@docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
|
||||
//
|
||||
// Параметры:
|
||||
// Наименование - Строка - Наименование объекта в бакете - title
|
||||
// Бакет - Строка - Имя бакета для загрузки объекта - bucket
|
||||
// Содержимое - Строка, ДвоичныеДанные - Данные или путь к файлу для загрузки - data
|
||||
// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция ЗагрузитьОбъект(Знач Наименование
|
||||
, Знач Бакет
|
||||
, Знач Содержимое
|
||||
, Знач ОсновныеДанные
|
||||
, Знач Заголовки = Неопределено) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
|
||||
|
||||
URL = ПолучитьURLСервиса(ОсновныеДанные);
|
||||
URL = СформироватьURLБакета(URL, Бакет, Ложь);
|
||||
URL = URL + Наименование;
|
||||
|
||||
ОсновныеДанные.Вставить("URL", URL);
|
||||
|
||||
Ответ = ОтправитьЗапросСТелом("PUT", ОсновныеДанные, Содержимое, Заголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Получить описание объекта
|
||||
// Получает информацию о характеристиках объекта в бакете
|
||||
//
|
||||
// Примечание:
|
||||
// Метаданные объекты содержатся в заголовках
|
||||
// Метод в документации AWS: [GetObjectAttributes](@docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html)
|
||||
//
|
||||
// Параметры:
|
||||
// Наименование - Строка - Наименование объекта в бакете - title
|
||||
// Бакет - Строка - Имя бакета, в котором находится объект - bucket
|
||||
// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
|
||||
// Версия - Строка - Токен для получения конкретной версии объекта - ver
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция ПолучитьОписаниеОбъекта(Знач Наименование
|
||||
, Знач Бакет
|
||||
, Знач ОсновныеДанные
|
||||
, Знач Версия = Неопределено
|
||||
, Знач Заголовки = Неопределено) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
|
||||
|
||||
URL = ПолучитьURLСервиса(ОсновныеДанные);
|
||||
URL = СформироватьURLБакета(URL, Бакет, Ложь);
|
||||
URL = URL + Наименование;
|
||||
|
||||
Если ЗначениеЗаполнено(Версия) Тогда
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Версия);
|
||||
URL = URL + "?versionId=" + Версия;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ОсновныеДанные.Вставить("URL", URL);
|
||||
|
||||
Ответ = ОтправитьЗапросСТелом("HEAD", ОсновныеДанные, Заголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Удалить объект
|
||||
// Удаляет объект из бакета
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации AWS: [DeleteObject](@docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html)
|
||||
//
|
||||
// Параметры:
|
||||
// Наименование - Строка - Наименование объекта в бакете - title
|
||||
// Бакет - Строка - Имя бакета для загрузки объекта - bucket
|
||||
// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
|
||||
// Версия - Строка - Токен для удаления конкретной версии объекта - ver
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция УдалитьОбъект(Знач Наименование
|
||||
, Знач Бакет
|
||||
, Знач ОсновныеДанные
|
||||
, Знач Версия = Неопределено
|
||||
, Знач Заголовки = Неопределено) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
|
||||
|
||||
URL = ПолучитьURLСервиса(ОсновныеДанные);
|
||||
URL = СформироватьURLБакета(URL, Бакет, Ложь);
|
||||
URL = URL + Наименование;
|
||||
|
||||
Если ЗначениеЗаполнено(Версия) Тогда
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Версия);
|
||||
URL = URL + "?versionId=" + Версия;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ОсновныеДанные.Вставить("URL", URL);
|
||||
|
||||
Ответ = ОтправитьЗапросСТелом("DELETE", ОсновныеДанные, Заголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
@ -715,7 +840,7 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьURLСервиса(Знач ОсновныеДанные)
|
||||
Функция ПолучитьURLСервиса(ОсновныеДанные)
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(ОсновныеДанные);
|
||||
|
||||
@ -822,12 +947,13 @@
|
||||
|
||||
Функция ОформитьОтвет(Знач Ответ, Знач ОжидаютсяДвоичные = Ложь)
|
||||
|
||||
Статус = Ответ.КодСостояния;
|
||||
Статус = Ответ.КодСостояния;
|
||||
Заголовки = Ответ.Заголовки;
|
||||
|
||||
Если Не ОжидаютсяДвоичные Или Статус > 299 Тогда
|
||||
|
||||
ДанныеОтвета = Новый Соответствие;
|
||||
ДанныеТела = Новый Соответствие;
|
||||
ДанныеОтвета = Новый Структура;
|
||||
ДанныеТела = Новый Структура;
|
||||
|
||||
ТелоОтвета = Ответ.ПолучитьТелоКакСтроку();
|
||||
ТелоОтвета = СокрЛП(ТелоОтвета);
|
||||
@ -842,9 +968,10 @@
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ДанныеОтвета = Новый Соответствие;
|
||||
ДанныеОтвета = Новый Структура;
|
||||
ДанныеОтвета.Вставить("status" , Статус);
|
||||
ДанныеОтвета.Вставить("response", ДанныеТела);
|
||||
ДанныеОтвета.Вставить("headers" , Заголовки);
|
||||
|
||||
Иначе
|
||||
ДанныеОтвета = Ответ.ПолучитьТелоКакДвоичныеДанные();
|
||||
|
@ -2138,6 +2138,22 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура AWS_РаботаСОбъектами() Экспорт
|
||||
|
||||
ПараметрыТеста = Новый Структура;
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("S3_AccessKey", ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("S3_SecretKey", ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("S3_URL" , ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
|
||||
|
||||
S3_СоздатьБакет(ПараметрыТеста);
|
||||
S3_ЗагрузитьОбъект(ПараметрыТеста);
|
||||
S3_ПолучитьОписаниеОбъекта(ПараметрыТеста);
|
||||
S3_УдалитьОбъект(ПараметрыТеста);
|
||||
S3_УдалитьБакет(ПараметрыТеста);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
@ -14778,13 +14794,14 @@
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПроверитьДоступностьБакета", "S3"); // SKIP
|
||||
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат); // SKIP
|
||||
ОсновныеДанные.Вставить("URL", ПараметрыФункции["S3_URL"]); // SKIP
|
||||
|
||||
Результат = OPI_S3.ПроверитьДоступностьБакета(Наименование, ОсновныеДанные, Истина, "1234");
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПроверитьДоступностьБакета (аккаунт)", "S3");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_S3НеНайдено(Результат);
|
||||
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@ -14803,7 +14820,6 @@
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьШифрованиеБакета", "S3");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Соответствие(Результат);
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьФайлЛога("", "ПолучитьШифрованиеБакета", "S3", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
@ -15012,6 +15028,70 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура S3_ЗагрузитьОбъект(ПараметрыФункции)
|
||||
|
||||
URL = ПараметрыФункции["S3_URL"];
|
||||
AccessKey = ПараметрыФункции["S3_AccessKey"];
|
||||
SecretKey = ПараметрыФункции["S3_SecretKey"];
|
||||
Region = "BTC";
|
||||
|
||||
ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
|
||||
|
||||
Наименование = "picture.jpg";
|
||||
Бакет = "opi-gpbucket3";
|
||||
Содержимое = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
|
||||
|
||||
Результат = 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);
|
||||
|
||||
Наименование = "picture.jpg";
|
||||
Бакет = "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);
|
||||
|
||||
Наименование = "picture.jpg";
|
||||
Бакет = "opi-gpbucket3";
|
||||
|
||||
Результат = OPI_S3.ПолучитьОписаниеОбъекта(Наименование, Бакет, ОсновныеДанные);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьОписаниеОбъекта", "S3");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -16464,7 +16464,7 @@
|
||||
Метод = "GET";
|
||||
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("metod", Метод);
|
||||
Опции.Вставить("method", Метод);
|
||||
Опции.Вставить("basic", ОсновныеДанные);
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ОтправитьЗапросБезТела", Опции);
|
||||
@ -16494,7 +16494,7 @@
|
||||
Тело = "C:\test_data\document.docx";
|
||||
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("metod", Метод);
|
||||
Опции.Вставить("method", Метод);
|
||||
Опции.Вставить("basic", ОсновныеДанные);
|
||||
Опции.Вставить("body" , Тело);
|
||||
|
||||
@ -16682,7 +16682,6 @@
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьШифрованиеБакета", Опции);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ПолучитьШифрованиеБакета", "S3");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Соответствие(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
@ -256,6 +256,7 @@
|
||||
НовыйТест(ТаблицаТестов, "ЯМетрика_УправлениеСчетчиками" , "Управление счетчиками" , Метрика);
|
||||
НовыйТест(ТаблицаТестов, "AWS_ОбщиеМетоды" , "Общие методы" , S3_);
|
||||
НовыйТест(ТаблицаТестов, "AWS_РаботаСБакетами" , "Работа с бакетами" , S3_);
|
||||
НовыйТест(ТаблицаТестов, "AWS_РаботаСОбъектами" , "Работа с объектами" , S3_);
|
||||
|
||||
Возврат ТаблицаТестов;
|
||||
|
||||
@ -2039,9 +2040,9 @@
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьОбщийМодуль(Знач Имя)
|
||||
|
||||
|
||||
Модуль = Вычислить(Имя);
|
||||
|
||||
|
||||
Возврат Модуль;
|
||||
КонецФункции
|
||||
|
||||
@ -2125,7 +2126,7 @@
|
||||
|
||||
Для Каждого СекретныйКлюч Из МассивСекретов Цикл
|
||||
|
||||
Если СтрНайти(Имя, СекретныйКлюч) <> 0 Тогда
|
||||
Если СтрНайти(нРег(Имя), СекретныйКлюч) <> 0 Тогда
|
||||
Значение = "***";
|
||||
КонецЕсли;
|
||||
|
||||
|
@ -37,6 +37,7 @@
|
||||
//@skip-check module-structure-method-in-regions
|
||||
//@skip-check wrong-string-literal-content
|
||||
//@skip-check method-too-many-params
|
||||
//@skip-check constructor-function-return-section
|
||||
|
||||
// Раскомментировать, если выполняется OneScript
|
||||
// #Использовать "../../tools"
|
||||
@ -79,7 +80,7 @@
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция ОтправитьЗапросБезТела(Знач Метод, Знач ОсновныеДанные, Знач Заголовки = Неопределено) Экспорт
|
||||
|
||||
Ответ = ОтправитьЗапрос(Метод, ОсновныеДанные, , Заголовки);
|
||||
@ -97,7 +98,7 @@
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция ОтправитьЗапросСТелом(Знач Метод, Знач ОсновныеДанные, Знач Тело, Знач Заголовки = Неопределено) Экспорт
|
||||
|
||||
Ответ = ОтправитьЗапрос(Метод, ОсновныеДанные, Тело, Заголовки);
|
||||
@ -122,7 +123,7 @@
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция СоздатьБакет(Знач Наименование, Знач ОсновныеДанные, Знач Каталог = Истина, Знач Заголовки = Неопределено) Экспорт
|
||||
|
||||
Ответ = УправлениеБакетом(Наименование, ОсновныеДанные, Каталог, "PUT", Заголовки);
|
||||
@ -143,7 +144,7 @@
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция УдалитьБакет(Знач Наименование, Знач ОсновныеДанные, Знач Каталог = Истина, Знач Заголовки = Неопределено) Экспорт
|
||||
|
||||
Ответ = УправлениеБакетом(Наименование, ОсновныеДанные, Каталог, "DELETE", Заголовки);
|
||||
@ -165,7 +166,7 @@
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция ПроверитьДоступностьБакета(Знач Наименование
|
||||
, Знач ОсновныеДанные
|
||||
, Знач Каталог = Истина
|
||||
@ -199,7 +200,7 @@
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция УстановитьШифрованиеБакета(Знач Наименование
|
||||
, Знач ОсновныеДанные
|
||||
, Знач XMLКонфигурация
|
||||
@ -234,7 +235,7 @@
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция ПолучитьШифрованиеБакета(Знач Наименование
|
||||
, Знач ОсновныеДанные
|
||||
, Знач Каталог = Истина
|
||||
@ -266,7 +267,7 @@
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция УдалитьШифрованиеБакета(Знач Наименование
|
||||
, Знач ОсновныеДанные
|
||||
, Знач Каталог = Истина
|
||||
@ -300,7 +301,7 @@
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция УстановитьТегиБакета(Знач Наименование
|
||||
, Знач ОсновныеДанные
|
||||
, Знач Теги
|
||||
@ -336,7 +337,7 @@
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция ПолучитьТегиБакета(Знач Наименование
|
||||
, Знач ОсновныеДанные
|
||||
, Знач Каталог = Истина
|
||||
@ -367,7 +368,7 @@
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция УдалитьТегиБакета(Знач Наименование
|
||||
, Знач ОсновныеДанные
|
||||
, Знач Каталог = Истина
|
||||
@ -400,7 +401,7 @@
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция УстановитьНастройкиВерсионированияБакета(Знач Наименование
|
||||
, Знач ОсновныеДанные
|
||||
, Знач Статус = Неопределено
|
||||
@ -437,7 +438,7 @@
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция ПолучитьНастройкийВерсионированияБакета(Знач Наименование
|
||||
, Знач ОсновныеДанные
|
||||
, Знач Каталог = Истина
|
||||
@ -469,7 +470,7 @@
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция ПолучитьСписокБакетов(Знач ОсновныеДанные
|
||||
, Знач Префикс = ""
|
||||
, Знач Регион = ""
|
||||
@ -495,6 +496,130 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область РаботаСОбъектами
|
||||
|
||||
// Загрузить объект
|
||||
// Загружает файл в бакет
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации AWS: [PutObject](@docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
|
||||
//
|
||||
// Параметры:
|
||||
// Наименование - Строка - Наименование объекта в бакете - title
|
||||
// Бакет - Строка - Имя бакета для загрузки объекта - bucket
|
||||
// Содержимое - Строка, ДвоичныеДанные - Данные или путь к файлу для загрузки - data
|
||||
// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция ЗагрузитьОбъект(Знач Наименование
|
||||
, Знач Бакет
|
||||
, Знач Содержимое
|
||||
, Знач ОсновныеДанные
|
||||
, Знач Заголовки = Неопределено) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
|
||||
|
||||
URL = ПолучитьURLСервиса(ОсновныеДанные);
|
||||
URL = СформироватьURLБакета(URL, Бакет, Ложь);
|
||||
URL = URL + Наименование;
|
||||
|
||||
ОсновныеДанные.Вставить("URL", URL);
|
||||
|
||||
Ответ = ОтправитьЗапросСТелом("PUT", ОсновныеДанные, Содержимое, Заголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Получить описание объекта
|
||||
// Получает информацию о характеристиках объекта в бакете
|
||||
//
|
||||
// Примечание:
|
||||
// Метаданные объекты содержатся в заголовках
|
||||
// Метод в документации AWS: [GetObjectAttributes](@docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html)
|
||||
//
|
||||
// Параметры:
|
||||
// Наименование - Строка - Наименование объекта в бакете - title
|
||||
// Бакет - Строка - Имя бакета, в котором находится объект - bucket
|
||||
// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
|
||||
// Версия - Строка - Токен для получения конкретной версии объекта - ver
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция ПолучитьОписаниеОбъекта(Знач Наименование
|
||||
, Знач Бакет
|
||||
, Знач ОсновныеДанные
|
||||
, Знач Версия = Неопределено
|
||||
, Знач Заголовки = Неопределено) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
|
||||
|
||||
URL = ПолучитьURLСервиса(ОсновныеДанные);
|
||||
URL = СформироватьURLБакета(URL, Бакет, Ложь);
|
||||
URL = URL + Наименование;
|
||||
|
||||
Если ЗначениеЗаполнено(Версия) Тогда
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Версия);
|
||||
URL = URL + "?versionId=" + Версия;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ОсновныеДанные.Вставить("URL", URL);
|
||||
|
||||
Ответ = ОтправитьЗапросСТелом("HEAD", ОсновныеДанные, Заголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Удалить объект
|
||||
// Удаляет объект из бакета
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации AWS: [DeleteObject](@docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html)
|
||||
//
|
||||
// Параметры:
|
||||
// Наименование - Строка - Наименование объекта в бакете - title
|
||||
// Бакет - Строка - Имя бакета для загрузки объекта - bucket
|
||||
// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
|
||||
// Версия - Строка - Токен для удаления конкретной версии объекта - ver
|
||||
// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||
Функция УдалитьОбъект(Знач Наименование
|
||||
, Знач Бакет
|
||||
, Знач ОсновныеДанные
|
||||
, Знач Версия = Неопределено
|
||||
, Знач Заголовки = Неопределено) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
|
||||
|
||||
URL = ПолучитьURLСервиса(ОсновныеДанные);
|
||||
URL = СформироватьURLБакета(URL, Бакет, Ложь);
|
||||
URL = URL + Наименование;
|
||||
|
||||
Если ЗначениеЗаполнено(Версия) Тогда
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Версия);
|
||||
URL = URL + "?versionId=" + Версия;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ОсновныеДанные.Вставить("URL", URL);
|
||||
|
||||
Ответ = ОтправитьЗапросСТелом("DELETE", ОсновныеДанные, Заголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
@ -822,12 +947,13 @@
|
||||
|
||||
Функция ОформитьОтвет(Знач Ответ, Знач ОжидаютсяДвоичные = Ложь)
|
||||
|
||||
Статус = Ответ.КодСостояния;
|
||||
Статус = Ответ.КодСостояния;
|
||||
Заголовки = Ответ.Заголовки;
|
||||
|
||||
Если Не ОжидаютсяДвоичные Или Статус > 299 Тогда
|
||||
|
||||
ДанныеОтвета = Новый Соответствие;
|
||||
ДанныеТела = Новый Соответствие;
|
||||
ДанныеОтвета = Новый Структура;
|
||||
ДанныеТела = Новый Структура;
|
||||
|
||||
ТелоОтвета = Ответ.ПолучитьТелоКакСтроку();
|
||||
ТелоОтвета = СокрЛП(ТелоОтвета);
|
||||
@ -842,9 +968,10 @@
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ДанныеОтвета = Новый Соответствие;
|
||||
ДанныеОтвета = Новый Структура;
|
||||
ДанныеОтвета.Вставить("status" , Статус);
|
||||
ДанныеОтвета.Вставить("response", ДанныеТела);
|
||||
ДанныеОтвета.Вставить("headers" , Заголовки);
|
||||
|
||||
Иначе
|
||||
ДанныеОтвета = Ответ.ПолучитьТелоКакДвоичныеДанные();
|
||||
|
@ -256,6 +256,7 @@
|
||||
НовыйТест(ТаблицаТестов, "ЯМетрика_УправлениеСчетчиками" , "Управление счетчиками" , Метрика);
|
||||
НовыйТест(ТаблицаТестов, "AWS_ОбщиеМетоды" , "Общие методы" , S3_);
|
||||
НовыйТест(ТаблицаТестов, "AWS_РаботаСБакетами" , "Работа с бакетами" , S3_);
|
||||
НовыйТест(ТаблицаТестов, "AWS_РаботаСОбъектами" , "Работа с объектами" , S3_);
|
||||
|
||||
Возврат ТаблицаТестов;
|
||||
|
||||
|
@ -2138,6 +2138,22 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура AWS_РаботаСОбъектами() Экспорт
|
||||
|
||||
ПараметрыТеста = Новый Структура;
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("S3_AccessKey", ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("S3_SecretKey", ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("S3_URL" , ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
|
||||
|
||||
S3_СоздатьБакет(ПараметрыТеста);
|
||||
S3_ЗагрузитьОбъект(ПараметрыТеста);
|
||||
S3_ПолучитьОписаниеОбъекта(ПараметрыТеста);
|
||||
S3_УдалитьОбъект(ПараметрыТеста);
|
||||
S3_УдалитьБакет(ПараметрыТеста);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
@ -14778,13 +14794,14 @@
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПроверитьДоступностьБакета", "S3"); // SKIP
|
||||
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат); // SKIP
|
||||
ОсновныеДанные.Вставить("URL", ПараметрыФункции["S3_URL"]); // SKIP
|
||||
|
||||
Результат = OPI_S3.ПроверитьДоступностьБакета(Наименование, ОсновныеДанные, Истина, "1234");
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПроверитьДоступностьБакета (аккаунт)", "S3");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_S3НеНайдено(Результат);
|
||||
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@ -14803,7 +14820,6 @@
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьШифрованиеБакета", "S3");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Соответствие(Результат);
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьФайлЛога("", "ПолучитьШифрованиеБакета", "S3", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
@ -15012,6 +15028,70 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура S3_ЗагрузитьОбъект(ПараметрыФункции)
|
||||
|
||||
URL = ПараметрыФункции["S3_URL"];
|
||||
AccessKey = ПараметрыФункции["S3_AccessKey"];
|
||||
SecretKey = ПараметрыФункции["S3_SecretKey"];
|
||||
Region = "BTC";
|
||||
|
||||
ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
|
||||
|
||||
Наименование = "picture.jpg";
|
||||
Бакет = "opi-gpbucket3";
|
||||
Содержимое = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
|
||||
|
||||
Результат = 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);
|
||||
|
||||
Наименование = "picture.jpg";
|
||||
Бакет = "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);
|
||||
|
||||
Наименование = "picture.jpg";
|
||||
Бакет = "opi-gpbucket3";
|
||||
|
||||
Результат = OPI_S3.ПолучитьОписаниеОбъекта(Наименование, Бакет, ОсновныеДанные);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьОписаниеОбъекта", "S3");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -16682,7 +16682,6 @@
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьШифрованиеБакета", Опции);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ПолучитьШифрованиеБакета", "S3");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Соответствие(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user