mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-03-31 22:05:13 +02:00
Main build (Jenkins)
This commit is contained in:
parent
aaa6e0e52a
commit
98840d17d3
10
ci/clitesten
10
ci/clitesten
@ -1616,15 +1616,19 @@ def test_s3(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||||
powershell encoding: 'UTF-8', script:'./oint.exe s3 SendRequestWithoutBody --method "test" --data "test" --debug --test '
|
powershell encoding: 'UTF-8', script:'./oint.exe s3 SendRequestWithoutBody --method "test" --data "test" --headers "test" --debug --test '
|
||||||
}
|
}
|
||||||
|
|
||||||
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||||
powershell encoding: 'UTF-8', script:'./oint.exe s3 CreateBucket --name "test" --data "test" --debug --test '
|
powershell encoding: 'UTF-8', script:'./oint.exe s3 CreateBucket --name "test" --data "test" --headers "test" --debug --test '
|
||||||
}
|
}
|
||||||
|
|
||||||
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||||
powershell encoding: 'UTF-8', script:'./oint.exe s3 DeleteBucket --name "test" --data "test" --debug --test '
|
powershell encoding: 'UTF-8', script:'./oint.exe s3 DeleteBucket --name "test" --data "test" --headers "test" --debug --test '
|
||||||
|
}
|
||||||
|
|
||||||
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||||
|
powershell encoding: 'UTF-8', script:'./oint.exe s3 GetBucketsList --data "test" --prefix "test" --region "test" --ctoken "test" --headers "test" --debug --test '
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
10
ci/clitestru
10
ci/clitestru
@ -1616,15 +1616,19 @@ def test_s3(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||||
powershell encoding: 'UTF-8', script:'./oint.exe s3 ОтправитьЗапросБезТела --method "test" --data "test" --debug --test '
|
powershell encoding: 'UTF-8', script:'./oint.exe s3 ОтправитьЗапросБезТела --method "test" --data "test" --headers "test" --debug --test '
|
||||||
}
|
}
|
||||||
|
|
||||||
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||||
powershell encoding: 'UTF-8', script:'./oint.exe s3 СоздатьБакет --name "test" --data "test" --debug --test '
|
powershell encoding: 'UTF-8', script:'./oint.exe s3 СоздатьБакет --name "test" --data "test" --headers "test" --debug --test '
|
||||||
}
|
}
|
||||||
|
|
||||||
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||||
powershell encoding: 'UTF-8', script:'./oint.exe s3 УдалитьБакет --name "test" --data "test" --debug --test '
|
powershell encoding: 'UTF-8', script:'./oint.exe s3 УдалитьБакет --name "test" --data "test" --headers "test" --debug --test '
|
||||||
|
}
|
||||||
|
|
||||||
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||||
|
powershell encoding: 'UTF-8', script:'./oint.exe s3 ПолучитьСписокБакетов --data "test" --prefix "test" --region "test" --ctoken "test" --headers "test" --debug --test '
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
5
docs/en/data/S3/GetBucketsList.json
Normal file
5
docs/en/data/S3/GetBucketsList.json
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"URL": "storage-155.s3hoster.by",
|
||||||
|
"AccessKey": "BRN5RKJE67...",
|
||||||
|
"SecretKey": "NNhv+i9PrytpT8Tu0C1N..."
|
||||||
|
}
|
@ -3,8 +3,8 @@
|
|||||||
SecretKey = "NNhv+i9PrytpT8Tu0C1N...";
|
SecretKey = "NNhv+i9PrytpT8Tu0C1N...";
|
||||||
Region = "BTC";
|
Region = "BTC";
|
||||||
|
|
||||||
Authorization = OPI_S3.GetBasicDataStructure(URL, AccessKey, SecretKey, Region);
|
BasicData = OPI_S3.GetBasicDataStructure(URL, AccessKey, SecretKey, Region);
|
||||||
|
|
||||||
Name = "newbucket2";
|
Name = "opi-newbucket2";
|
||||||
|
|
||||||
Result = OPI_S3.CreateBucket(Name, Authorization);
|
Result = OPI_S3.CreateBucket(Name, BasicData);
|
||||||
|
@ -3,8 +3,8 @@
|
|||||||
SecretKey = "NNhv+i9PrytpT8Tu0C1N...";
|
SecretKey = "NNhv+i9PrytpT8Tu0C1N...";
|
||||||
Region = "BTC";
|
Region = "BTC";
|
||||||
|
|
||||||
Authorization = OPI_S3.GetBasicDataStructure(URL, AccessKey, SecretKey, Region);
|
BasicData = OPI_S3.GetBasicDataStructure(URL, AccessKey, SecretKey, Region);
|
||||||
|
|
||||||
Name = "newbucket2";
|
Name = "opi-newbucket2";
|
||||||
|
|
||||||
Result = OPI_S3.DeleteBucket(Name, Authorization);
|
Result = OPI_S3.DeleteBucket(Name, BasicData);
|
||||||
|
8
docs/en/examples/S3/GetBucketsList.txt
Normal file
8
docs/en/examples/S3/GetBucketsList.txt
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
URL = "storage-155.s3hoster.by";
|
||||||
|
AccessKey = "BRN5RKJE67...";
|
||||||
|
SecretKey = "NNhv+i9PrytpT8Tu0C1N...";
|
||||||
|
Region = "BTC";
|
||||||
|
|
||||||
|
BasicData = OPI_S3.GetBasicDataStructure(URL, AccessKey, SecretKey, Region);
|
||||||
|
|
||||||
|
Result = OPI_S3.GetBucketsList(BasicData);
|
@ -10,19 +10,23 @@ import TabItem from '@theme/TabItem';
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
`Function CreateBucket(Val Name, Val BasicData) Export`
|
`Function CreateBucket(Val Name, Val BasicData, Val Headers = Undefined) Export`
|
||||||
|
|
||||||
| Parameter | CLI option | Type | Required | Description |
|
| Parameter | CLI option | Type | Required | Description |
|
||||||
|-|-|-|-|-|
|
|-|-|-|-|-|
|
||||||
| Name | --name | String | ✔ | Bucket name |
|
| Name | --name | String | ✔ | Bucket name |
|
||||||
| BasicData | --data | String | ✔ | Basic request data. See GetBasicDataStructure |
|
| BasicData | --data | Structure of KeyAndValue | ✔ | Basic request data. See GetBasicDataStructure |
|
||||||
|
| Headers | --headers | Map Of KeyAndValue | ✖ | Additional request headers, if necessary |
|
||||||
|
|
||||||
|
|
||||||
Returns: Map Of KeyAndValue - serialized JSON response from storage
|
Returns: Map Of KeyAndValue - serialized JSON response from storage
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
|
:::tip
|
||||||
|
Method at AWS documentation: [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)
|
||||||
|
:::
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
|
||||||
```bsl title="1C:Enterprise/OneScript code example"
|
```bsl title="1C:Enterprise/OneScript code example"
|
||||||
@ -31,11 +35,11 @@ import TabItem from '@theme/TabItem';
|
|||||||
SecretKey = "NNhv+i9PrytpT8Tu0C1N...";
|
SecretKey = "NNhv+i9PrytpT8Tu0C1N...";
|
||||||
Region = "BTC";
|
Region = "BTC";
|
||||||
|
|
||||||
Authorization = OPI_S3.GetBasicDataStructure(URL, AccessKey, SecretKey, Region);
|
BasicData = OPI_S3.GetBasicDataStructure(URL, AccessKey, SecretKey, Region);
|
||||||
|
|
||||||
Name = "newbucket2";
|
Name = "opi-newbucket2";
|
||||||
|
|
||||||
Result = OPI_S3.CreateBucket(Name, Authorization);
|
Result = OPI_S3.CreateBucket(Name, BasicData);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
@ -10,19 +10,23 @@ import TabItem from '@theme/TabItem';
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
`Function DeleteBucket(Val Name, Val BasicData) Export`
|
`Function DeleteBucket(Val Name, Val BasicData, Val Headers = Undefined) Export`
|
||||||
|
|
||||||
| Parameter | CLI option | Type | Required | Description |
|
| Parameter | CLI option | Type | Required | Description |
|
||||||
|-|-|-|-|-|
|
|-|-|-|-|-|
|
||||||
| Name | --name | String | ✔ | Bucket name |
|
| Name | --name | String | ✔ | Bucket name |
|
||||||
| BasicData | --data | String | ✔ | Basic request data. See GetBasicDataStructure |
|
| BasicData | --data | Structure of KeyAndValue | ✔ | Basic request data. See GetBasicDataStructure |
|
||||||
|
| Headers | --headers | Map Of KeyAndValue | ✖ | Additional request headers, if necessary |
|
||||||
|
|
||||||
|
|
||||||
Returns: Map Of KeyAndValue - serialized JSON response from storage
|
Returns: Map Of KeyAndValue - serialized JSON response from storage
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
|
:::tip
|
||||||
|
Method at AWS documentation: [DeleteBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html)
|
||||||
|
:::
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
|
||||||
```bsl title="1C:Enterprise/OneScript code example"
|
```bsl title="1C:Enterprise/OneScript code example"
|
||||||
@ -31,11 +35,11 @@ import TabItem from '@theme/TabItem';
|
|||||||
SecretKey = "NNhv+i9PrytpT8Tu0C1N...";
|
SecretKey = "NNhv+i9PrytpT8Tu0C1N...";
|
||||||
Region = "BTC";
|
Region = "BTC";
|
||||||
|
|
||||||
Authorization = OPI_S3.GetBasicDataStructure(URL, AccessKey, SecretKey, Region);
|
BasicData = OPI_S3.GetBasicDataStructure(URL, AccessKey, SecretKey, Region);
|
||||||
|
|
||||||
Name = "newbucket2";
|
Name = "opi-newbucket2";
|
||||||
|
|
||||||
Result = OPI_S3.DeleteBucket(Name, Authorization);
|
Result = OPI_S3.DeleteBucket(Name, BasicData);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
48
docs/en/md/S3/Buckets-managment/Get-buckets-list.mdx
Normal file
48
docs/en/md/S3/Buckets-managment/Get-buckets-list.mdx
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
---
|
||||||
|
sidebar_position: 3
|
||||||
|
---
|
||||||
|
|
||||||
|
import Tabs from '@theme/Tabs';
|
||||||
|
import TabItem from '@theme/TabItem';
|
||||||
|
|
||||||
|
# Get buckets list
|
||||||
|
Gets a list of buckets. It is possible to use filters if they are provided by your service
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
`Function GetBucketsList(Val BasicData, Val Prefix = "", Val Region = "", Val PageToken = "", Val Headers = Undefined) Export`
|
||||||
|
|
||||||
|
| Parameter | CLI option | Type | Required | Description |
|
||||||
|
|-|-|-|-|-|
|
||||||
|
| BasicData | --data | Structure of KeyAndValue | ✔ | Basic request data. See GetBasicDataStructure |
|
||||||
|
| Prefix | --prefix | String | ✖ | Filtering by the beginning of the name, if necessary |
|
||||||
|
| Region | --region | String | ✖ | Selection by bucket region, if necessary |
|
||||||
|
| PageToken | --ctoken | String | ✖ | Page token if pagination is used |
|
||||||
|
| Headers | --headers | Map Of KeyAndValue | ✖ | Additional request headers, if necessary |
|
||||||
|
|
||||||
|
|
||||||
|
Returns: Map Of KeyAndValue - serialized JSON response from storage
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
:::tip
|
||||||
|
Method at AWS documentation: [ListBuckets](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html)
|
||||||
|
:::
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
|
||||||
|
```bsl title="1C:Enterprise/OneScript code example"
|
||||||
|
URL = "storage-155.s3hoster.by";
|
||||||
|
AccessKey = "BRN5RKJE67...";
|
||||||
|
SecretKey = "NNhv+i9PrytpT8Tu0C1N...";
|
||||||
|
Region = "BTC";
|
||||||
|
|
||||||
|
BasicData = OPI_S3.GetBasicDataStructure(URL, AccessKey, SecretKey, Region);
|
||||||
|
|
||||||
|
Result = OPI_S3.GetBucketsList(BasicData);
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -10,12 +10,13 @@ import TabItem from '@theme/TabItem';
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
`Function SendRequestWithoutBody(Val Method, Val BasicData) Export`
|
`Function SendRequestWithoutBody(Val Method, Val BasicData, Val Headers = Undefined) Export`
|
||||||
|
|
||||||
| Parameter | CLI option | Type | Required | Description |
|
| Parameter | CLI option | Type | Required | Description |
|
||||||
|-|-|-|-|-|
|
|-|-|-|-|-|
|
||||||
| Method | --method | String | ✔ | HTTP method |
|
| Method | --method | String | ✔ | HTTP method |
|
||||||
| BasicData | --data | String | ✔ | Basic request data (with full URL). See GetBasicDataStructure |
|
| BasicData | --data | Structure of KeyAndValue | ✔ | Basic request data (with full URL). See GetBasicDataStructure |
|
||||||
|
| Headers | --headers | Map Of KeyAndValue | ✖ | Additional request headers, if necessary |
|
||||||
|
|
||||||
|
|
||||||
Returns: Map Of KeyAndValue - serialized JSON response from storage
|
Returns: Map Of KeyAndValue - serialized JSON response from storage
|
||||||
|
5
docs/ru/data/S3/ПолучитьСписокБакетов.json
Normal file
5
docs/ru/data/S3/ПолучитьСписокБакетов.json
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"URL": "storage-155.s3hoster.by",
|
||||||
|
"AccessKey": "BRN5RKJE67...",
|
||||||
|
"SecretKey": "NNhv+i9PrytpT8Tu0C1N..."
|
||||||
|
}
|
8
docs/ru/examples/S3/ПолучитьСписокБакетов.txt
Normal file
8
docs/ru/examples/S3/ПолучитьСписокБакетов.txt
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
URL = "storage-155.s3hoster.by";
|
||||||
|
AccessKey = "BRN5RKJE67...";
|
||||||
|
SecretKey = "NNhv+i9PrytpT8Tu0C1N...";
|
||||||
|
Region = "BTC";
|
||||||
|
|
||||||
|
ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
|
||||||
|
|
||||||
|
Результат = OPI_S3.ПолучитьСписокБакетов(ОсновныеДанные);
|
@ -3,8 +3,8 @@
|
|||||||
SecretKey = "NNhv+i9PrytpT8Tu0C1N...";
|
SecretKey = "NNhv+i9PrytpT8Tu0C1N...";
|
||||||
Region = "BTC";
|
Region = "BTC";
|
||||||
|
|
||||||
Авторизация = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
|
ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
|
||||||
|
|
||||||
Имя = "newbucket2";
|
Имя = "opi-newbucket2";
|
||||||
|
|
||||||
Результат = OPI_S3.СоздатьБакет(Имя, Авторизация);
|
Результат = OPI_S3.СоздатьБакет(Имя, ОсновныеДанные);
|
||||||
|
@ -3,8 +3,8 @@
|
|||||||
SecretKey = "NNhv+i9PrytpT8Tu0C1N...";
|
SecretKey = "NNhv+i9PrytpT8Tu0C1N...";
|
||||||
Region = "BTC";
|
Region = "BTC";
|
||||||
|
|
||||||
Авторизация = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
|
ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
|
||||||
|
|
||||||
Имя = "newbucket2";
|
Имя = "opi-newbucket2";
|
||||||
|
|
||||||
Результат = OPI_S3.УдалитьБакет(Имя, Авторизация);
|
Результат = OPI_S3.УдалитьБакет(Имя, ОсновныеДанные);
|
||||||
|
@ -10,19 +10,23 @@ import TabItem from '@theme/TabItem';
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
`Функция СоздатьБакет(Знач Наименование, Знач ОсновныеДанные) Экспорт`
|
`Функция СоздатьБакет(Знач Наименование, Знач ОсновныеДанные, Знач Заголовки = Неопределено) Экспорт`
|
||||||
|
|
||||||
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|
||||||
|-|-|-|-|-|
|
|-|-|-|-|-|
|
||||||
| Наименование | --name | Строка | ✔ | Наименование бакета |
|
| Наименование | --name | Строка | ✔ | Наименование бакета |
|
||||||
| ОсновныеДанные | --data | Строка | ✔ | Основные данные запроса. См. ПолучитьСтруктуруДанных |
|
| ОсновныеДанные | --data | Структура Из КлючИЗначение | ✔ | Основные данные запроса. См. ПолучитьСтруктуруДанных |
|
||||||
|
| Заголовки | --headers | Соответствие Из КлючИЗначение | ✖ | Дополнительные заголовки запроса, если необходимо |
|
||||||
|
|
||||||
|
|
||||||
Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
|
:::tip
|
||||||
|
Метод в документации AWS: [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)
|
||||||
|
:::
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
|
||||||
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
||||||
@ -31,14 +35,19 @@ import TabItem from '@theme/TabItem';
|
|||||||
SecretKey = "NNhv+i9PrytpT8Tu0C1N...";
|
SecretKey = "NNhv+i9PrytpT8Tu0C1N...";
|
||||||
Region = "BTC";
|
Region = "BTC";
|
||||||
|
|
||||||
Авторизация = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
|
ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
|
||||||
|
|
||||||
Имя = "newbucket2";
|
Имя = "opi-newbucket2";
|
||||||
|
|
||||||
Результат = OPI_S3.СоздатьБакет(Имя, Авторизация);
|
Результат = OPI_S3.СоздатьБакет(Имя, ОсновныеДанные);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
```json title="Результат"
|
||||||
|
{
|
||||||
|
"message": "Неподдерживаемое сообщение",
|
||||||
|
"status": 200
|
||||||
|
}
|
||||||
|
```
|
||||||
|
@ -10,19 +10,23 @@ import TabItem from '@theme/TabItem';
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
`Функция УдалитьБакет(Знач Наименование, Знач ОсновныеДанные) Экспорт`
|
`Функция УдалитьБакет(Знач Наименование, Знач ОсновныеДанные, Знач Заголовки = Неопределено) Экспорт`
|
||||||
|
|
||||||
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|
||||||
|-|-|-|-|-|
|
|-|-|-|-|-|
|
||||||
| Наименование | --name | Строка | ✔ | Наименование бакета |
|
| Наименование | --name | Строка | ✔ | Наименование бакета |
|
||||||
| ОсновныеДанные | --data | Строка | ✔ | Основные данные запроса. См. ПолучитьСтруктуруДанных |
|
| ОсновныеДанные | --data | Структура Из КлючИЗначение | ✔ | Основные данные запроса. См. ПолучитьСтруктуруДанных |
|
||||||
|
| Заголовки | --headers | Соответствие Из КлючИЗначение | ✖ | Дополнительные заголовки запроса, если необходимо |
|
||||||
|
|
||||||
|
|
||||||
Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
|
:::tip
|
||||||
|
Метод в документации AWS: [DeleteBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html)
|
||||||
|
:::
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
|
||||||
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
||||||
@ -31,14 +35,19 @@ import TabItem from '@theme/TabItem';
|
|||||||
SecretKey = "NNhv+i9PrytpT8Tu0C1N...";
|
SecretKey = "NNhv+i9PrytpT8Tu0C1N...";
|
||||||
Region = "BTC";
|
Region = "BTC";
|
||||||
|
|
||||||
Авторизация = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
|
ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
|
||||||
|
|
||||||
Имя = "newbucket2";
|
Имя = "opi-newbucket2";
|
||||||
|
|
||||||
Результат = OPI_S3.УдалитьБакет(Имя, Авторизация);
|
Результат = OPI_S3.УдалитьБакет(Имя, ОсновныеДанные);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
```json title="Результат"
|
||||||
|
{
|
||||||
|
"message": {},
|
||||||
|
"status": 204
|
||||||
|
}
|
||||||
|
```
|
||||||
|
48
docs/ru/md/S3/Buckets-managment/Get-buckets-list.mdx
Normal file
48
docs/ru/md/S3/Buckets-managment/Get-buckets-list.mdx
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
---
|
||||||
|
sidebar_position: 3
|
||||||
|
---
|
||||||
|
|
||||||
|
import Tabs from '@theme/Tabs';
|
||||||
|
import TabItem from '@theme/TabItem';
|
||||||
|
|
||||||
|
# Получить список бакетов
|
||||||
|
Получает список бакетов. Возможно использование отборов, если они поддерживаются сервисом
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
`Функция ПолучитьСписокБакетов(Знач ОсновныеДанные, Знач Префикс = "", Знач Регион = "", Знач ТокенСтраницы = "", Знач Заголовки = Неопределено) Экспорт`
|
||||||
|
|
||||||
|
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|
||||||
|
|-|-|-|-|-|
|
||||||
|
| ОсновныеДанные | --data | Структура Из КлючИЗначение | ✔ | Основные данные запроса. См. ПолучитьСтруктуруДанных |
|
||||||
|
| Префикс | --prefix | Строка | ✖ | Отбор по началу имени, если необходимо |
|
||||||
|
| Регион | --region | Строка | ✖ | Отбор по региону бакета, если необходимо |
|
||||||
|
| ТокенСтраницы | --ctoken | Строка | ✖ | Токен страницы, если используется пагинация |
|
||||||
|
| Заголовки | --headers | Соответствие Из КлючИЗначение | ✖ | Дополнительные заголовки запроса, если необходимо |
|
||||||
|
|
||||||
|
|
||||||
|
Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
:::tip
|
||||||
|
Метод в документации AWS: [ListBuckets](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html)
|
||||||
|
:::
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
|
||||||
|
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
||||||
|
URL = "storage-155.s3hoster.by";
|
||||||
|
AccessKey = "BRN5RKJE67...";
|
||||||
|
SecretKey = "NNhv+i9PrytpT8Tu0C1N...";
|
||||||
|
Region = "BTC";
|
||||||
|
|
||||||
|
ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
|
||||||
|
|
||||||
|
Результат = OPI_S3.ПолучитьСписокБакетов(ОсновныеДанные);
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -10,12 +10,13 @@ import TabItem from '@theme/TabItem';
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
`Функция ОтправитьЗапросБезТела(Знач Метод, Знач ОсновныеДанные) Экспорт`
|
`Функция ОтправитьЗапросБезТела(Знач Метод, Знач ОсновныеДанные, Знач Заголовки = Неопределено) Экспорт`
|
||||||
|
|
||||||
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|
||||||
|-|-|-|-|-|
|
|-|-|-|-|-|
|
||||||
| Метод | --method | Строка | ✔ | HTTP метод |
|
| Метод | --method | Строка | ✔ | HTTP метод |
|
||||||
| ОсновныеДанные | --data | Строка | ✔ | Основные данные запроса (c полным URL). См. ПолучитьСтруктуруДанных |
|
| ОсновныеДанные | --data | Структура Из КлючИЗначение | ✔ | Основные данные запроса (c полным URL). См. ПолучитьСтруктуруДанных |
|
||||||
|
| Заголовки | --headers | Соответствие Из КлючИЗначение | ✖ | Дополнительные заголовки запроса, если необходимо |
|
||||||
|
|
||||||
|
|
||||||
Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от хранилища
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -75,11 +75,12 @@ EndFunction
|
|||||||
//
|
//
|
||||||
// Parameters:
|
// Parameters:
|
||||||
// Method - String - HTTP method - method
|
// Method - String - HTTP method - method
|
||||||
// BasicData - String - Basic request data (with full URL). See GetBasicDataStructure - data
|
// BasicData - Structure of KeyAndValue - Basic request data (with full URL). See GetBasicDataStructure - data
|
||||||
|
// Headers - Map Of KeyAndValue - Additional request headers, if necessary - headers
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Map Of KeyAndValue - serialized JSON response from storage
|
// Map Of KeyAndValue - serialized JSON response from storage
|
||||||
Function SendRequestWithoutBody(Val Method, Val BasicData) Export
|
Function SendRequestWithoutBody(Val Method, Val BasicData, Val Headers = Undefined) Export
|
||||||
|
|
||||||
CheckBasicData(BasicData);
|
CheckBasicData(BasicData);
|
||||||
|
|
||||||
@ -93,6 +94,8 @@ Function SendRequestWithoutBody(Val Method, Val BasicData) Export
|
|||||||
Request = OPI_Tools.CreateRequest(Address);
|
Request = OPI_Tools.CreateRequest(Address);
|
||||||
Connection = OPI_Tools.CreateConnection(Server, Safe);
|
Connection = OPI_Tools.CreateConnection(Server, Safe);
|
||||||
|
|
||||||
|
AddAdditionalHeaders(Request, Headers);
|
||||||
|
|
||||||
AuthorizationHeader = CreateAuthorizationHeader(BasicData, Request, Connection, Method);
|
AuthorizationHeader = CreateAuthorizationHeader(BasicData, Request, Connection, Method);
|
||||||
Request.Headers.Insert("Authorization", AuthorizationHeader);
|
Request.Headers.Insert("Authorization", AuthorizationHeader);
|
||||||
|
|
||||||
@ -110,15 +113,19 @@ EndFunction
|
|||||||
// Create bucket
|
// Create bucket
|
||||||
// Creates a new bucket with the specified name
|
// Creates a new bucket with the specified name
|
||||||
//
|
//
|
||||||
|
// Note
|
||||||
|
// Method at AWS documentation: [CreateBucket](@docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)
|
||||||
|
//
|
||||||
// Parameters:
|
// Parameters:
|
||||||
// Name - String - Bucket name - name
|
// Name - String - Bucket name - name
|
||||||
// BasicData - String - Basic request data. See GetBasicDataStructure - data
|
// BasicData - Structure of KeyAndValue - Basic request data. See GetBasicDataStructure - data
|
||||||
|
// Headers - Map Of KeyAndValue - Additional request headers, if necessary - headers
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Map Of KeyAndValue - serialized JSON response from storage
|
// Map Of KeyAndValue - serialized JSON response from storage
|
||||||
Function CreateBucket(Val Name, Val BasicData) Export
|
Function CreateBucket(Val Name, Val BasicData, Val Headers = Undefined) Export
|
||||||
|
|
||||||
Response = BucketManagment(Name, BasicData, "PUT");
|
Response = BucketManagment(Name, BasicData, "PUT", Headers);
|
||||||
Return Response;
|
Return Response;
|
||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
@ -126,15 +133,57 @@ EndFunction
|
|||||||
// Delete bucket
|
// Delete bucket
|
||||||
// Deletes the bucket by name
|
// Deletes the bucket by name
|
||||||
//
|
//
|
||||||
|
// Note
|
||||||
|
// Method at AWS documentation: [DeleteBucket](@docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html)
|
||||||
|
//
|
||||||
// Parameters:
|
// Parameters:
|
||||||
// Name - String - Bucket name - name
|
// Name - String - Bucket name - name
|
||||||
// BasicData - String - Basic request data. See GetBasicDataStructure - data
|
// BasicData - Structure of KeyAndValue - Basic request data. See GetBasicDataStructure - data
|
||||||
|
// Headers - Map Of KeyAndValue - Additional request headers, if necessary - headers
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Map Of KeyAndValue - serialized JSON response from storage
|
// Map Of KeyAndValue - serialized JSON response from storage
|
||||||
Function DeleteBucket(Val Name, Val BasicData) Export
|
Function DeleteBucket(Val Name, Val BasicData, Val Headers = Undefined) Export
|
||||||
|
|
||||||
|
Response = BucketManagment(Name, BasicData, "DELETE", Headers);
|
||||||
|
Return Response;
|
||||||
|
|
||||||
|
EndFunction
|
||||||
|
|
||||||
|
// Get buckets list
|
||||||
|
// Gets a list of buckets. It is possible to use filters if they are provided by your service
|
||||||
|
//
|
||||||
|
// Note
|
||||||
|
// Method at AWS documentation: [ListBuckets](@docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html)
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// BasicData - Structure of KeyAndValue - Basic request data. See GetBasicDataStructure - data
|
||||||
|
// Prefix - String - Filtering by the beginning of the name, if necessary - prefix
|
||||||
|
// Region - String - Selection by bucket region, if necessary - region
|
||||||
|
// PageToken - String - Page token if pagination is used - ctoken
|
||||||
|
// Headers - Map Of KeyAndValue - Additional request headers, if necessary - headers
|
||||||
|
//
|
||||||
|
// Returns:
|
||||||
|
// Map Of KeyAndValue - serialized JSON response from storage
|
||||||
|
Function GetBucketsList(Val BasicData
|
||||||
|
, Val Prefix = ""
|
||||||
|
, Val Region = ""
|
||||||
|
, Val PageToken = ""
|
||||||
|
, Val Headers = Undefined) Export
|
||||||
|
|
||||||
|
Parameters = New Map;
|
||||||
|
OPI_Tools.AddField("bucket-region" , Region , "String", Parameters);
|
||||||
|
OPI_Tools.AddField("continuation-token", PageToken, "String", Parameters);
|
||||||
|
OPI_Tools.AddField("max-buckets" , 250 , "String", Parameters);
|
||||||
|
OPI_Tools.AddField("prefix" , Prefix , "String", Parameters);
|
||||||
|
|
||||||
|
URL = GetServiceURL(BasicData);
|
||||||
|
URL = URL + OPI_Tools.RequestParametersToString(Parameters);
|
||||||
|
|
||||||
|
BasicData.Insert("URL", URL);
|
||||||
|
|
||||||
|
Response = SendRequestWithoutBody("GET", BasicData, Headers);
|
||||||
|
|
||||||
Response = BucketManagment(Name, BasicData, "DELETE");
|
|
||||||
Return Response;
|
Return Response;
|
||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
@ -207,12 +256,14 @@ Function CreateCanonicalRequest(Val Request, Val Connection, Val Method)
|
|||||||
RequestTemplate = "";
|
RequestTemplate = "";
|
||||||
|
|
||||||
For N = 1 To 6 Do
|
For N = 1 To 6 Do
|
||||||
|
|
||||||
RequestTemplate = RequestTemplate + "%" + String(N) + ?(N = 6, "", Chars.LF);
|
RequestTemplate = RequestTemplate + "%" + String(N) + ?(N = 6, "", Chars.LF);
|
||||||
|
|
||||||
EndDo;
|
EndDo;
|
||||||
|
|
||||||
Method = Upper(Method);
|
Method = Upper(Method);
|
||||||
URIString = GetURIString(Request);
|
URIString = GetURIString(Request);
|
||||||
ParameterString = GetParamsString(URIString);
|
ParameterString = GetParamsString(Request);
|
||||||
HeadersString = GetHeadersString(Request);
|
HeadersString = GetHeadersString(Request);
|
||||||
KeysString = GetHeadersKeysString(Request);
|
KeysString = GetHeadersKeysString(Request);
|
||||||
|
|
||||||
@ -282,8 +333,9 @@ Function GetURIString(Val Request)
|
|||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
|
|
||||||
Function GetParamsString(Val URI)
|
Function GetParamsString(Val Request)
|
||||||
|
|
||||||
|
URI = Request.ResourceAddress;
|
||||||
ParamsStart = StrFind(URI, "?");
|
ParamsStart = StrFind(URI, "?");
|
||||||
|
|
||||||
If ParamsStart = 0 Then
|
If ParamsStart = 0 Then
|
||||||
@ -359,9 +411,15 @@ Function GetHeadersKeysString(Val Request)
|
|||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
|
|
||||||
Function GetServiceURL(Val Authorization)
|
Function GetServiceURL(Val BasicData)
|
||||||
|
|
||||||
URL = Authorization["URL"];
|
OPI_TypeConversion.GetCollection(BasicData);
|
||||||
|
|
||||||
|
If TypeOf(BasicData) = Type("Array") Then
|
||||||
|
Raise "Error of obtaining authorization data from the structure";
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
URL = BasicData["URL"];
|
||||||
|
|
||||||
OPI_TypeConversion.GetLine(URL);
|
OPI_TypeConversion.GetLine(URL);
|
||||||
|
|
||||||
@ -390,46 +448,49 @@ EndFunction
|
|||||||
|
|
||||||
#Region Miscellaneous
|
#Region Miscellaneous
|
||||||
|
|
||||||
Function BucketManagment(Val Name, Val BasicData, Val Method)
|
Function BucketManagment(Val Name, Val BasicData, Val Method, Val Headers)
|
||||||
|
|
||||||
OPI_TypeConversion.GetLine(Name);
|
OPI_TypeConversion.GetLine(Name);
|
||||||
OPI_TypeConversion.GetCollection(BasicData);
|
|
||||||
|
|
||||||
If TypeOf(BasicData) = Type("Array") Then
|
|
||||||
Raise "Error of obtaining authorization data from the structure";
|
|
||||||
EndIf;
|
|
||||||
|
|
||||||
URL = GetServiceURL(BasicData);
|
URL = GetServiceURL(BasicData);
|
||||||
URL = URL + Name;
|
URL = URL + Name;
|
||||||
|
|
||||||
BasicData.Insert("URL", URL);
|
BasicData.Insert("URL", URL);
|
||||||
|
|
||||||
Response = SendRequestWithoutBody(Method, BasicData);
|
Response = SendRequestWithoutBody(Method, BasicData, Headers);
|
||||||
|
|
||||||
Return Response;
|
Return Response;
|
||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
|
|
||||||
Function FormResponse(Val Response)
|
Function FormResponse(Val Response, Val ExpectedBinary = False)
|
||||||
|
|
||||||
ResponseTemplate = New Structure();
|
|
||||||
|
|
||||||
Status = Response.StatusCode;
|
Status = Response.StatusCode;
|
||||||
OPI_Tools.ProcessResponse(Response);
|
|
||||||
|
|
||||||
If TypeOf(Response) = Type("BinaryData") Then
|
If Not ExpectedBinary Or Status > 299 Then
|
||||||
Response = ПолучитьСтрокуИзДвоичныхДанных(Response);
|
|
||||||
EndIf;
|
ResponseBody = Response.GetBodyAsString();
|
||||||
|
ResponseBody = TrimAll(ResponseBody);
|
||||||
|
|
||||||
|
If ValueIsFilled(ResponseBody) Then
|
||||||
|
|
||||||
|
Try
|
||||||
|
ResponseData = OPI_Tools.ProcessXML(ResponseBody);
|
||||||
|
Except
|
||||||
|
ResponseData = New Structure("notXMLMessage", ResponseBody);
|
||||||
|
EndTry;
|
||||||
|
|
||||||
|
Else
|
||||||
|
ResponseData = New Structure;
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
ResponseData = New Structure("status,response", Status, ResponseData);
|
||||||
|
|
||||||
If SupportedResponse(Response) Then
|
|
||||||
ResponseTemplate.Insert("message", Response);
|
|
||||||
Else
|
Else
|
||||||
ResponseTemplate.Insert("message", "Unsupported message");
|
ResponseData = Response.ПолучитьТелоКакДвоичныеДанные();
|
||||||
EndIf;
|
EndIf;
|
||||||
|
|
||||||
ResponseTemplate.Insert("status", Status);
|
Return ResponseData;
|
||||||
|
|
||||||
Return ResponseTemplate;
|
|
||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
|
|
||||||
@ -465,6 +526,24 @@ Procedure CheckBasicData(BasicData)
|
|||||||
|
|
||||||
EndProcedure
|
EndProcedure
|
||||||
|
|
||||||
|
Procedure AddAdditionalHeaders(Request, Val Headers)
|
||||||
|
|
||||||
|
If Not ValueIsFilled(Headers) Then
|
||||||
|
Return;
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
OPI_TypeConversion.GetCollection(Headers);
|
||||||
|
|
||||||
|
If TypeOf(Headers) = Type("Array") Then
|
||||||
|
Raise "Error setting additional headers";
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
For Each Title In Headers Do
|
||||||
|
Request.Headers.Insert(Title.Key, Title.Value);
|
||||||
|
EndDo;
|
||||||
|
|
||||||
|
EndProcedure
|
||||||
|
|
||||||
#EndRegion
|
#EndRegion
|
||||||
|
|
||||||
#EndRegion
|
#EndRegion
|
||||||
|
@ -2111,6 +2111,7 @@ Procedure AWS_BucketsManagment() Export
|
|||||||
OPI_TestDataRetrieval.ParameterToCollection("S3_URL" , TestParameters);
|
OPI_TestDataRetrieval.ParameterToCollection("S3_URL" , TestParameters);
|
||||||
|
|
||||||
S3_CreateBucket(TestParameters);
|
S3_CreateBucket(TestParameters);
|
||||||
|
S3_GetBucketsList(TestParameters);
|
||||||
S3_DeleteBucket(TestParameters);
|
S3_DeleteBucket(TestParameters);
|
||||||
|
|
||||||
EndProcedure
|
EndProcedure
|
||||||
@ -14615,11 +14616,11 @@ Procedure S3_CreateBucket(FunctionParameters)
|
|||||||
SecretKey = FunctionParameters["S3_SecretKey"];
|
SecretKey = FunctionParameters["S3_SecretKey"];
|
||||||
Region = "BTC";
|
Region = "BTC";
|
||||||
|
|
||||||
Authorization = OPI_S3.GetBasicDataStructure(URL, AccessKey, SecretKey, Region);
|
BasicData = OPI_S3.GetBasicDataStructure(URL, AccessKey, SecretKey, Region);
|
||||||
|
|
||||||
Name = "newbucket2";
|
Name = "opi-newbucket2";
|
||||||
|
|
||||||
Result = OPI_S3.CreateBucket(Name, Authorization);
|
Result = OPI_S3.CreateBucket(Name, BasicData);
|
||||||
|
|
||||||
// END
|
// END
|
||||||
|
|
||||||
@ -14635,11 +14636,11 @@ Procedure S3_DeleteBucket(FunctionParameters)
|
|||||||
SecretKey = FunctionParameters["S3_SecretKey"];
|
SecretKey = FunctionParameters["S3_SecretKey"];
|
||||||
Region = "BTC";
|
Region = "BTC";
|
||||||
|
|
||||||
Authorization = OPI_S3.GetBasicDataStructure(URL, AccessKey, SecretKey, Region);
|
BasicData = OPI_S3.GetBasicDataStructure(URL, AccessKey, SecretKey, Region);
|
||||||
|
|
||||||
Name = "newbucket2";
|
Name = "opi-newbucket2";
|
||||||
|
|
||||||
Result = OPI_S3.DeleteBucket(Name, Authorization);
|
Result = OPI_S3.DeleteBucket(Name, BasicData);
|
||||||
|
|
||||||
// END
|
// END
|
||||||
|
|
||||||
@ -14648,6 +14649,24 @@ Procedure S3_DeleteBucket(FunctionParameters)
|
|||||||
|
|
||||||
EndProcedure
|
EndProcedure
|
||||||
|
|
||||||
|
Procedure S3_GetBucketsList(FunctionParameters)
|
||||||
|
|
||||||
|
URL = FunctionParameters["S3_URL"];
|
||||||
|
AccessKey = FunctionParameters["S3_AccessKey"];
|
||||||
|
SecretKey = FunctionParameters["S3_SecretKey"];
|
||||||
|
Region = "BTC";
|
||||||
|
|
||||||
|
BasicData = OPI_S3.GetBasicDataStructure(URL, AccessKey, SecretKey, Region);
|
||||||
|
|
||||||
|
Result = OPI_S3.GetBucketsList(BasicData);
|
||||||
|
|
||||||
|
// END
|
||||||
|
|
||||||
|
OPI_TestDataRetrieval.WriteLog(Result, "GetBucketsList", "S3");
|
||||||
|
OPI_TestDataRetrieval.Check_S3Success(Result);
|
||||||
|
|
||||||
|
EndProcedure
|
||||||
|
|
||||||
#EndRegion
|
#EndRegion
|
||||||
|
|
||||||
#EndRegion
|
#EndRegion
|
||||||
|
@ -684,8 +684,52 @@ Function IsOneScript() Export
|
|||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
|
|
||||||
|
Function ProcessXML(XML) Export
|
||||||
|
|
||||||
|
XMLInitialProcessing(XML);
|
||||||
|
|
||||||
|
ReturnValue = New Map;
|
||||||
|
|
||||||
|
WHile XML.Read() Do
|
||||||
|
|
||||||
|
NodeType = XML.NodeType;
|
||||||
|
NodeName = XML.Name;
|
||||||
|
|
||||||
|
ExistingValue = ReturnValue.Get(NodeName);
|
||||||
|
|
||||||
|
If NodeType = XMLNodeType.StartElement Then
|
||||||
|
|
||||||
|
If ExistingValue = Undefined Then
|
||||||
|
ReturnValue.Insert(NodeName, ProcessXML(XML));
|
||||||
|
Else
|
||||||
|
ValueToArray(ExistingValue);
|
||||||
|
ExistingValue.Add(ProcessXML(XML));
|
||||||
|
ReturnValue.Insert(NodeName, ExistingValue);
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
Else
|
||||||
|
|
||||||
|
If Not NodeType = XMLNodeType.EndElement Then
|
||||||
|
ReturnValue = XML.Value;
|
||||||
|
XML.Read();
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
Break;
|
||||||
|
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
EndDo;
|
||||||
|
|
||||||
|
Return ReturnValue;
|
||||||
|
|
||||||
|
EndFunction
|
||||||
|
|
||||||
Procedure ValueToArray(Value) Export
|
Procedure ValueToArray(Value) Export
|
||||||
|
|
||||||
|
If TypeOf(Value) = Type("Array") Then
|
||||||
|
Return;
|
||||||
|
EndIf;
|
||||||
|
|
||||||
Value_ = New Array;
|
Value_ = New Array;
|
||||||
Value_.Add(Value);
|
Value_.Add(Value);
|
||||||
Value = Value_;
|
Value = Value_;
|
||||||
@ -1267,6 +1311,16 @@ Procedure RemoveEmptyArrayItems(Val Collection, OutputCollection)
|
|||||||
|
|
||||||
EndProcedure
|
EndProcedure
|
||||||
|
|
||||||
|
Procedure XMLInitialProcessing(XML)
|
||||||
|
|
||||||
|
If Not TypeOf(XML) = Type("XMLReader") Then
|
||||||
|
XML_ = XML;
|
||||||
|
XML = New XMLReader;
|
||||||
|
XML.SetString(XML_);
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
EndProcedure
|
||||||
|
|
||||||
#Region GZip
|
#Region GZip
|
||||||
|
|
||||||
// Structure description at https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT
|
// Structure description at https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT
|
||||||
|
@ -75,11 +75,12 @@ EndFunction
|
|||||||
//
|
//
|
||||||
// Parameters:
|
// Parameters:
|
||||||
// Method - String - HTTP method - method
|
// Method - String - HTTP method - method
|
||||||
// BasicData - String - Basic request data (with full URL). See GetBasicDataStructure - data
|
// BasicData - Structure of KeyAndValue - Basic request data (with full URL). See GetBasicDataStructure - data
|
||||||
|
// Headers - Map Of KeyAndValue - Additional request headers, if necessary - headers
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Map Of KeyAndValue - serialized JSON response from storage
|
// Map Of KeyAndValue - serialized JSON response from storage
|
||||||
Function SendRequestWithoutBody(Val Method, Val BasicData) Export
|
Function SendRequestWithoutBody(Val Method, Val BasicData, Val Headers = Undefined) Export
|
||||||
|
|
||||||
CheckBasicData(BasicData);
|
CheckBasicData(BasicData);
|
||||||
|
|
||||||
@ -93,6 +94,8 @@ Function SendRequestWithoutBody(Val Method, Val BasicData) Export
|
|||||||
Request = OPI_Tools.CreateRequest(Address);
|
Request = OPI_Tools.CreateRequest(Address);
|
||||||
Connection = OPI_Tools.CreateConnection(Server, Safe);
|
Connection = OPI_Tools.CreateConnection(Server, Safe);
|
||||||
|
|
||||||
|
AddAdditionalHeaders(Request, Headers);
|
||||||
|
|
||||||
AuthorizationHeader = CreateAuthorizationHeader(BasicData, Request, Connection, Method);
|
AuthorizationHeader = CreateAuthorizationHeader(BasicData, Request, Connection, Method);
|
||||||
Request.Headers.Insert("Authorization", AuthorizationHeader);
|
Request.Headers.Insert("Authorization", AuthorizationHeader);
|
||||||
|
|
||||||
@ -110,15 +113,19 @@ EndFunction
|
|||||||
// Create bucket
|
// Create bucket
|
||||||
// Creates a new bucket with the specified name
|
// Creates a new bucket with the specified name
|
||||||
//
|
//
|
||||||
|
// Note
|
||||||
|
// Method at AWS documentation: [CreateBucket](@docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)
|
||||||
|
//
|
||||||
// Parameters:
|
// Parameters:
|
||||||
// Name - String - Bucket name - name
|
// Name - String - Bucket name - name
|
||||||
// BasicData - String - Basic request data. See GetBasicDataStructure - data
|
// BasicData - Structure of KeyAndValue - Basic request data. See GetBasicDataStructure - data
|
||||||
|
// Headers - Map Of KeyAndValue - Additional request headers, if necessary - headers
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Map Of KeyAndValue - serialized JSON response from storage
|
// Map Of KeyAndValue - serialized JSON response from storage
|
||||||
Function CreateBucket(Val Name, Val BasicData) Export
|
Function CreateBucket(Val Name, Val BasicData, Val Headers = Undefined) Export
|
||||||
|
|
||||||
Response = BucketManagment(Name, BasicData, "PUT");
|
Response = BucketManagment(Name, BasicData, "PUT", Headers);
|
||||||
Return Response;
|
Return Response;
|
||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
@ -126,15 +133,57 @@ EndFunction
|
|||||||
// Delete bucket
|
// Delete bucket
|
||||||
// Deletes the bucket by name
|
// Deletes the bucket by name
|
||||||
//
|
//
|
||||||
|
// Note
|
||||||
|
// Method at AWS documentation: [DeleteBucket](@docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html)
|
||||||
|
//
|
||||||
// Parameters:
|
// Parameters:
|
||||||
// Name - String - Bucket name - name
|
// Name - String - Bucket name - name
|
||||||
// BasicData - String - Basic request data. See GetBasicDataStructure - data
|
// BasicData - Structure of KeyAndValue - Basic request data. See GetBasicDataStructure - data
|
||||||
|
// Headers - Map Of KeyAndValue - Additional request headers, if necessary - headers
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Map Of KeyAndValue - serialized JSON response from storage
|
// Map Of KeyAndValue - serialized JSON response from storage
|
||||||
Function DeleteBucket(Val Name, Val BasicData) Export
|
Function DeleteBucket(Val Name, Val BasicData, Val Headers = Undefined) Export
|
||||||
|
|
||||||
|
Response = BucketManagment(Name, BasicData, "DELETE", Headers);
|
||||||
|
Return Response;
|
||||||
|
|
||||||
|
EndFunction
|
||||||
|
|
||||||
|
// Get buckets list
|
||||||
|
// Gets a list of buckets. It is possible to use filters if they are provided by your service
|
||||||
|
//
|
||||||
|
// Note
|
||||||
|
// Method at AWS documentation: [ListBuckets](@docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html)
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// BasicData - Structure of KeyAndValue - Basic request data. See GetBasicDataStructure - data
|
||||||
|
// Prefix - String - Filtering by the beginning of the name, if necessary - prefix
|
||||||
|
// Region - String - Selection by bucket region, if necessary - region
|
||||||
|
// PageToken - String - Page token if pagination is used - ctoken
|
||||||
|
// Headers - Map Of KeyAndValue - Additional request headers, if necessary - headers
|
||||||
|
//
|
||||||
|
// Returns:
|
||||||
|
// Map Of KeyAndValue - serialized JSON response from storage
|
||||||
|
Function GetBucketsList(Val BasicData
|
||||||
|
, Val Prefix = ""
|
||||||
|
, Val Region = ""
|
||||||
|
, Val PageToken = ""
|
||||||
|
, Val Headers = Undefined) Export
|
||||||
|
|
||||||
|
Parameters = New Map;
|
||||||
|
OPI_Tools.AddField("bucket-region" , Region , "String", Parameters);
|
||||||
|
OPI_Tools.AddField("continuation-token", PageToken, "String", Parameters);
|
||||||
|
OPI_Tools.AddField("max-buckets" , 250 , "String", Parameters);
|
||||||
|
OPI_Tools.AddField("prefix" , Prefix , "String", Parameters);
|
||||||
|
|
||||||
|
URL = GetServiceURL(BasicData);
|
||||||
|
URL = URL + OPI_Tools.RequestParametersToString(Parameters);
|
||||||
|
|
||||||
|
BasicData.Insert("URL", URL);
|
||||||
|
|
||||||
|
Response = SendRequestWithoutBody("GET", BasicData, Headers);
|
||||||
|
|
||||||
Response = BucketManagment(Name, BasicData, "DELETE");
|
|
||||||
Return Response;
|
Return Response;
|
||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
@ -207,12 +256,14 @@ Function CreateCanonicalRequest(Val Request, Val Connection, Val Method)
|
|||||||
RequestTemplate = "";
|
RequestTemplate = "";
|
||||||
|
|
||||||
For N = 1 To 6 Do
|
For N = 1 To 6 Do
|
||||||
|
|
||||||
RequestTemplate = RequestTemplate + "%" + String(N) + ?(N = 6, "", Chars.LF);
|
RequestTemplate = RequestTemplate + "%" + String(N) + ?(N = 6, "", Chars.LF);
|
||||||
|
|
||||||
EndDo;
|
EndDo;
|
||||||
|
|
||||||
Method = Upper(Method);
|
Method = Upper(Method);
|
||||||
URIString = GetURIString(Request);
|
URIString = GetURIString(Request);
|
||||||
ParameterString = GetParamsString(URIString);
|
ParameterString = GetParamsString(Request);
|
||||||
HeadersString = GetHeadersString(Request);
|
HeadersString = GetHeadersString(Request);
|
||||||
KeysString = GetHeadersKeysString(Request);
|
KeysString = GetHeadersKeysString(Request);
|
||||||
|
|
||||||
@ -282,8 +333,9 @@ Function GetURIString(Val Request)
|
|||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
|
|
||||||
Function GetParamsString(Val URI)
|
Function GetParamsString(Val Request)
|
||||||
|
|
||||||
|
URI = Request.ResourceAddress;
|
||||||
ParamsStart = StrFind(URI, "?");
|
ParamsStart = StrFind(URI, "?");
|
||||||
|
|
||||||
If ParamsStart = 0 Then
|
If ParamsStart = 0 Then
|
||||||
@ -359,9 +411,15 @@ Function GetHeadersKeysString(Val Request)
|
|||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
|
|
||||||
Function GetServiceURL(Val Authorization)
|
Function GetServiceURL(Val BasicData)
|
||||||
|
|
||||||
URL = Authorization["URL"];
|
OPI_TypeConversion.GetCollection(BasicData);
|
||||||
|
|
||||||
|
If TypeOf(BasicData) = Type("Array") Then
|
||||||
|
Raise "Error of obtaining authorization data from the structure";
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
URL = BasicData["URL"];
|
||||||
|
|
||||||
OPI_TypeConversion.GetLine(URL);
|
OPI_TypeConversion.GetLine(URL);
|
||||||
|
|
||||||
@ -390,46 +448,49 @@ EndFunction
|
|||||||
|
|
||||||
#Region Miscellaneous
|
#Region Miscellaneous
|
||||||
|
|
||||||
Function BucketManagment(Val Name, Val BasicData, Val Method)
|
Function BucketManagment(Val Name, Val BasicData, Val Method, Val Headers)
|
||||||
|
|
||||||
OPI_TypeConversion.GetLine(Name);
|
OPI_TypeConversion.GetLine(Name);
|
||||||
OPI_TypeConversion.GetCollection(BasicData);
|
|
||||||
|
|
||||||
If TypeOf(BasicData) = Type("Array") Then
|
|
||||||
Raise "Error of obtaining authorization data from the structure";
|
|
||||||
EndIf;
|
|
||||||
|
|
||||||
URL = GetServiceURL(BasicData);
|
URL = GetServiceURL(BasicData);
|
||||||
URL = URL + Name;
|
URL = URL + Name;
|
||||||
|
|
||||||
BasicData.Insert("URL", URL);
|
BasicData.Insert("URL", URL);
|
||||||
|
|
||||||
Response = SendRequestWithoutBody(Method, BasicData);
|
Response = SendRequestWithoutBody(Method, BasicData, Headers);
|
||||||
|
|
||||||
Return Response;
|
Return Response;
|
||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
|
|
||||||
Function FormResponse(Val Response)
|
Function FormResponse(Val Response, Val ExpectedBinary = False)
|
||||||
|
|
||||||
ResponseTemplate = New Structure();
|
|
||||||
|
|
||||||
Status = Response.StatusCode;
|
Status = Response.StatusCode;
|
||||||
OPI_Tools.ProcessResponse(Response);
|
|
||||||
|
|
||||||
If TypeOf(Response) = Type("BinaryData") Then
|
If Not ExpectedBinary Or Status > 299 Then
|
||||||
Response = GetStringFromBinaryData(Response);
|
|
||||||
EndIf;
|
ResponseBody = Response.GetBodyAsString();
|
||||||
|
ResponseBody = TrimAll(ResponseBody);
|
||||||
|
|
||||||
|
If ValueIsFilled(ResponseBody) Then
|
||||||
|
|
||||||
|
Try
|
||||||
|
ResponseData = OPI_Tools.ProcessXML(ResponseBody);
|
||||||
|
Except
|
||||||
|
ResponseData = New Structure("notXMLMessage", ResponseBody);
|
||||||
|
EndTry;
|
||||||
|
|
||||||
|
Else
|
||||||
|
ResponseData = New Structure;
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
ResponseData = New Structure("status,response", Status, ResponseData);
|
||||||
|
|
||||||
If SupportedResponse(Response) Then
|
|
||||||
ResponseTemplate.Insert("message", Response);
|
|
||||||
Else
|
Else
|
||||||
ResponseTemplate.Insert("message", "Unsupported message");
|
ResponseData = Response.GetBodyAsBinaryData();
|
||||||
EndIf;
|
EndIf;
|
||||||
|
|
||||||
ResponseTemplate.Insert("status", Status);
|
Return ResponseData;
|
||||||
|
|
||||||
Return ResponseTemplate;
|
|
||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
|
|
||||||
@ -465,6 +526,24 @@ Procedure CheckBasicData(BasicData)
|
|||||||
|
|
||||||
EndProcedure
|
EndProcedure
|
||||||
|
|
||||||
|
Procedure AddAdditionalHeaders(Request, Val Headers)
|
||||||
|
|
||||||
|
If Not ValueIsFilled(Headers) Then
|
||||||
|
Return;
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
OPI_TypeConversion.GetCollection(Headers);
|
||||||
|
|
||||||
|
If TypeOf(Headers) = Type("Array") Then
|
||||||
|
Raise "Error setting additional headers";
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
For Each Title In Headers Do
|
||||||
|
Request.Headers.Insert(Title.Key, Title.Value);
|
||||||
|
EndDo;
|
||||||
|
|
||||||
|
EndProcedure
|
||||||
|
|
||||||
#EndRegion
|
#EndRegion
|
||||||
|
|
||||||
#EndRegion
|
#EndRegion
|
||||||
|
@ -2111,6 +2111,7 @@ Procedure AWS_BucketsManagment() Export
|
|||||||
OPI_TestDataRetrieval.ParameterToCollection("S3_URL" , TestParameters);
|
OPI_TestDataRetrieval.ParameterToCollection("S3_URL" , TestParameters);
|
||||||
|
|
||||||
S3_CreateBucket(TestParameters);
|
S3_CreateBucket(TestParameters);
|
||||||
|
S3_GetBucketsList(TestParameters);
|
||||||
S3_DeleteBucket(TestParameters);
|
S3_DeleteBucket(TestParameters);
|
||||||
|
|
||||||
EndProcedure
|
EndProcedure
|
||||||
@ -14615,11 +14616,11 @@ Procedure S3_CreateBucket(FunctionParameters)
|
|||||||
SecretKey = FunctionParameters["S3_SecretKey"];
|
SecretKey = FunctionParameters["S3_SecretKey"];
|
||||||
Region = "BTC";
|
Region = "BTC";
|
||||||
|
|
||||||
Authorization = OPI_S3.GetBasicDataStructure(URL, AccessKey, SecretKey, Region);
|
BasicData = OPI_S3.GetBasicDataStructure(URL, AccessKey, SecretKey, Region);
|
||||||
|
|
||||||
Name = "newbucket2";
|
Name = "opi-newbucket2";
|
||||||
|
|
||||||
Result = OPI_S3.CreateBucket(Name, Authorization);
|
Result = OPI_S3.CreateBucket(Name, BasicData);
|
||||||
|
|
||||||
// END
|
// END
|
||||||
|
|
||||||
@ -14635,11 +14636,11 @@ Procedure S3_DeleteBucket(FunctionParameters)
|
|||||||
SecretKey = FunctionParameters["S3_SecretKey"];
|
SecretKey = FunctionParameters["S3_SecretKey"];
|
||||||
Region = "BTC";
|
Region = "BTC";
|
||||||
|
|
||||||
Authorization = OPI_S3.GetBasicDataStructure(URL, AccessKey, SecretKey, Region);
|
BasicData = OPI_S3.GetBasicDataStructure(URL, AccessKey, SecretKey, Region);
|
||||||
|
|
||||||
Name = "newbucket2";
|
Name = "opi-newbucket2";
|
||||||
|
|
||||||
Result = OPI_S3.DeleteBucket(Name, Authorization);
|
Result = OPI_S3.DeleteBucket(Name, BasicData);
|
||||||
|
|
||||||
// END
|
// END
|
||||||
|
|
||||||
@ -14648,6 +14649,24 @@ Procedure S3_DeleteBucket(FunctionParameters)
|
|||||||
|
|
||||||
EndProcedure
|
EndProcedure
|
||||||
|
|
||||||
|
Procedure S3_GetBucketsList(FunctionParameters)
|
||||||
|
|
||||||
|
URL = FunctionParameters["S3_URL"];
|
||||||
|
AccessKey = FunctionParameters["S3_AccessKey"];
|
||||||
|
SecretKey = FunctionParameters["S3_SecretKey"];
|
||||||
|
Region = "BTC";
|
||||||
|
|
||||||
|
BasicData = OPI_S3.GetBasicDataStructure(URL, AccessKey, SecretKey, Region);
|
||||||
|
|
||||||
|
Result = OPI_S3.GetBucketsList(BasicData);
|
||||||
|
|
||||||
|
// END
|
||||||
|
|
||||||
|
OPI_TestDataRetrieval.WriteLog(Result, "GetBucketsList", "S3");
|
||||||
|
OPI_TestDataRetrieval.Check_S3Success(Result);
|
||||||
|
|
||||||
|
EndProcedure
|
||||||
|
|
||||||
#EndRegion
|
#EndRegion
|
||||||
|
|
||||||
#EndRegion
|
#EndRegion
|
||||||
|
@ -684,8 +684,52 @@ Function IsOneScript() Export
|
|||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
|
|
||||||
|
Function ProcessXML(XML) Export
|
||||||
|
|
||||||
|
XMLInitialProcessing(XML);
|
||||||
|
|
||||||
|
ReturnValue = New Map;
|
||||||
|
|
||||||
|
WHile XML.Read() Do
|
||||||
|
|
||||||
|
NodeType = XML.NodeType;
|
||||||
|
NodeName = XML.Name;
|
||||||
|
|
||||||
|
ExistingValue = ReturnValue.Get(NodeName);
|
||||||
|
|
||||||
|
If NodeType = XMLNodeType.StartElement Then
|
||||||
|
|
||||||
|
If ExistingValue = Undefined Then
|
||||||
|
ReturnValue.Insert(NodeName, ProcessXML(XML));
|
||||||
|
Else
|
||||||
|
ValueToArray(ExistingValue);
|
||||||
|
ExistingValue.Add(ProcessXML(XML));
|
||||||
|
ReturnValue.Insert(NodeName, ExistingValue);
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
Else
|
||||||
|
|
||||||
|
If Not NodeType = XMLNodeType.EndElement Then
|
||||||
|
ReturnValue = XML.Value;
|
||||||
|
XML.Read();
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
Break;
|
||||||
|
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
EndDo;
|
||||||
|
|
||||||
|
Return ReturnValue;
|
||||||
|
|
||||||
|
EndFunction
|
||||||
|
|
||||||
Procedure ValueToArray(Value) Export
|
Procedure ValueToArray(Value) Export
|
||||||
|
|
||||||
|
If TypeOf(Value) = Type("Array") Then
|
||||||
|
Return;
|
||||||
|
EndIf;
|
||||||
|
|
||||||
Value_ = New Array;
|
Value_ = New Array;
|
||||||
Value_.Add(Value);
|
Value_.Add(Value);
|
||||||
Value = Value_;
|
Value = Value_;
|
||||||
@ -1267,6 +1311,16 @@ Procedure RemoveEmptyArrayItems(Val Collection, OutputCollection)
|
|||||||
|
|
||||||
EndProcedure
|
EndProcedure
|
||||||
|
|
||||||
|
Procedure XMLInitialProcessing(XML)
|
||||||
|
|
||||||
|
If Not TypeOf(XML) = Type("XMLReader") Then
|
||||||
|
XML_ = XML;
|
||||||
|
XML = New XMLReader;
|
||||||
|
XML.SetString(XML_);
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
EndProcedure
|
||||||
|
|
||||||
#Region GZip
|
#Region GZip
|
||||||
|
|
||||||
// Structure description at https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT
|
// Structure description at https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT
|
||||||
|
@ -82,6 +82,16 @@
|
|||||||
NewLine.Область = "Common methods";
|
NewLine.Область = "Common methods";
|
||||||
|
|
||||||
|
|
||||||
|
NewLine = CompositionTable.Add();
|
||||||
|
NewLine.Библиотека = "s3";
|
||||||
|
NewLine.Модуль = "OPI_S3";
|
||||||
|
NewLine.Метод = "SendRequestWithoutBody";
|
||||||
|
NewLine.МетодПоиска = "SENDREQUESTWITHOUTBODY";
|
||||||
|
NewLine.Параметр = "--headers";
|
||||||
|
NewLine.Описание = "Additional request headers, if necessary (optional, def. val. - Empty value)";
|
||||||
|
NewLine.Область = "Common methods";
|
||||||
|
|
||||||
|
|
||||||
NewLine = CompositionTable.Add();
|
NewLine = CompositionTable.Add();
|
||||||
NewLine.Библиотека = "s3";
|
NewLine.Библиотека = "s3";
|
||||||
NewLine.Модуль = "OPI_S3";
|
NewLine.Модуль = "OPI_S3";
|
||||||
@ -103,6 +113,16 @@
|
|||||||
NewLine.Область = "Buckets managment";
|
NewLine.Область = "Buckets managment";
|
||||||
|
|
||||||
|
|
||||||
|
NewLine = CompositionTable.Add();
|
||||||
|
NewLine.Библиотека = "s3";
|
||||||
|
NewLine.Модуль = "OPI_S3";
|
||||||
|
NewLine.Метод = "CreateBucket";
|
||||||
|
NewLine.МетодПоиска = "CREATEBUCKET";
|
||||||
|
NewLine.Параметр = "--headers";
|
||||||
|
NewLine.Описание = "Additional request headers, if necessary (optional, def. val. - Empty value)";
|
||||||
|
NewLine.Область = "Buckets managment";
|
||||||
|
|
||||||
|
|
||||||
NewLine = CompositionTable.Add();
|
NewLine = CompositionTable.Add();
|
||||||
NewLine.Библиотека = "s3";
|
NewLine.Библиотека = "s3";
|
||||||
NewLine.Модуль = "OPI_S3";
|
NewLine.Модуль = "OPI_S3";
|
||||||
@ -123,6 +143,67 @@
|
|||||||
NewLine.Описание = "Basic request data. See GetBasicDataStructure";
|
NewLine.Описание = "Basic request data. See GetBasicDataStructure";
|
||||||
NewLine.Область = "Buckets managment";
|
NewLine.Область = "Buckets managment";
|
||||||
|
|
||||||
|
|
||||||
|
NewLine = CompositionTable.Add();
|
||||||
|
NewLine.Библиотека = "s3";
|
||||||
|
NewLine.Модуль = "OPI_S3";
|
||||||
|
NewLine.Метод = "DeleteBucket";
|
||||||
|
NewLine.МетодПоиска = "DELETEBUCKET";
|
||||||
|
NewLine.Параметр = "--headers";
|
||||||
|
NewLine.Описание = "Additional request headers, if necessary (optional, def. val. - Empty value)";
|
||||||
|
NewLine.Область = "Buckets managment";
|
||||||
|
|
||||||
|
|
||||||
|
NewLine = CompositionTable.Add();
|
||||||
|
NewLine.Библиотека = "s3";
|
||||||
|
NewLine.Модуль = "OPI_S3";
|
||||||
|
NewLine.Метод = "GetBucketsList";
|
||||||
|
NewLine.МетодПоиска = "GETBUCKETSLIST";
|
||||||
|
NewLine.Параметр = "--data";
|
||||||
|
NewLine.Описание = "Basic request data. See GetBasicDataStructure";
|
||||||
|
NewLine.Область = "Buckets managment";
|
||||||
|
NewLine.ОписаниеМетода = "Gets a list of buckets. It is possible to use filters if they are provided by your service";
|
||||||
|
|
||||||
|
|
||||||
|
NewLine = CompositionTable.Add();
|
||||||
|
NewLine.Библиотека = "s3";
|
||||||
|
NewLine.Модуль = "OPI_S3";
|
||||||
|
NewLine.Метод = "GetBucketsList";
|
||||||
|
NewLine.МетодПоиска = "GETBUCKETSLIST";
|
||||||
|
NewLine.Параметр = "--prefix";
|
||||||
|
NewLine.Описание = "Filtering by the beginning of the name, if necessary (optional, def. val. - Empty value)";
|
||||||
|
NewLine.Область = "Buckets managment";
|
||||||
|
|
||||||
|
|
||||||
|
NewLine = CompositionTable.Add();
|
||||||
|
NewLine.Библиотека = "s3";
|
||||||
|
NewLine.Модуль = "OPI_S3";
|
||||||
|
NewLine.Метод = "GetBucketsList";
|
||||||
|
NewLine.МетодПоиска = "GETBUCKETSLIST";
|
||||||
|
NewLine.Параметр = "--region";
|
||||||
|
NewLine.Описание = "Selection by bucket region, if necessary (optional, def. val. - Empty value)";
|
||||||
|
NewLine.Область = "Buckets managment";
|
||||||
|
|
||||||
|
|
||||||
|
NewLine = CompositionTable.Add();
|
||||||
|
NewLine.Библиотека = "s3";
|
||||||
|
NewLine.Модуль = "OPI_S3";
|
||||||
|
NewLine.Метод = "GetBucketsList";
|
||||||
|
NewLine.МетодПоиска = "GETBUCKETSLIST";
|
||||||
|
NewLine.Параметр = "--ctoken";
|
||||||
|
NewLine.Описание = "Page token if pagination is used (optional, def. val. - Empty value)";
|
||||||
|
NewLine.Область = "Buckets managment";
|
||||||
|
|
||||||
|
|
||||||
|
NewLine = CompositionTable.Add();
|
||||||
|
NewLine.Библиотека = "s3";
|
||||||
|
NewLine.Модуль = "OPI_S3";
|
||||||
|
NewLine.Метод = "GetBucketsList";
|
||||||
|
NewLine.МетодПоиска = "GETBUCKETSLIST";
|
||||||
|
NewLine.Параметр = "--headers";
|
||||||
|
NewLine.Описание = "Additional request headers, if necessary (optional, def. val. - Empty value)";
|
||||||
|
NewLine.Область = "Buckets managment";
|
||||||
|
|
||||||
Return CompositionTable;
|
Return CompositionTable;
|
||||||
EndFunction
|
EndFunction
|
||||||
|
|
||||||
|
@ -93,13 +93,13 @@
|
|||||||
|
|
||||||
Запрос = OPI_Инструменты.СоздатьЗапрос(Адрес);
|
Запрос = OPI_Инструменты.СоздатьЗапрос(Адрес);
|
||||||
Соединение = OPI_Инструменты.СоздатьСоединение(Сервер, Защищенное);
|
Соединение = OPI_Инструменты.СоздатьСоединение(Сервер, Защищенное);
|
||||||
|
|
||||||
ДобавитьДополнительныеЗаголовки(Запрос, Заголовки);
|
ДобавитьДополнительныеЗаголовки(Запрос, Заголовки);
|
||||||
|
|
||||||
ЗаголовокАвторизации = СоздатьЗаголовокАвторизации(ОсновныеДанные, Запрос, Соединение, Метод);
|
ЗаголовокАвторизации = СоздатьЗаголовокАвторизации(ОсновныеДанные, Запрос, Соединение, Метод);
|
||||||
Запрос.Заголовки.Вставить("Authorization", ЗаголовокАвторизации);
|
Запрос.Заголовки.Вставить("Authorization", ЗаголовокАвторизации);
|
||||||
|
|
||||||
Ответ = OPI_Инструменты.ВыполнитьЗапрос(Запрос, Соединение, Метод, , Истина);
|
Ответ = OPI_Инструменты.ВыполнитьЗапрос(Запрос, Соединение, Метод, , Истина);
|
||||||
Ответ = ОформитьОтвет(Ответ);
|
Ответ = ОформитьОтвет(Ответ);
|
||||||
|
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
@ -152,7 +152,7 @@
|
|||||||
|
|
||||||
// Получить список бакетов
|
// Получить список бакетов
|
||||||
// Получает список бакетов. Возможно использование отборов, если они поддерживаются сервисом
|
// Получает список бакетов. Возможно использование отборов, если они поддерживаются сервисом
|
||||||
//
|
//
|
||||||
// Примечание:
|
// Примечание:
|
||||||
// Метод в документации AWS: [ListBuckets](@docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html)
|
// Метод в документации AWS: [ListBuckets](@docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html)
|
||||||
//
|
//
|
||||||
@ -170,7 +170,7 @@
|
|||||||
, Знач Регион = ""
|
, Знач Регион = ""
|
||||||
, Знач ТокенСтраницы = ""
|
, Знач ТокенСтраницы = ""
|
||||||
, Знач Заголовки = Неопределено) Экспорт
|
, Знач Заголовки = Неопределено) Экспорт
|
||||||
|
|
||||||
Параметры = Новый Соответствие;
|
Параметры = Новый Соответствие;
|
||||||
OPI_Инструменты.ДобавитьПоле("bucket-region" , Регион , "Строка", Параметры);
|
OPI_Инструменты.ДобавитьПоле("bucket-region" , Регион , "Строка", Параметры);
|
||||||
OPI_Инструменты.ДобавитьПоле("continuation-token", ТокенСтраницы, "Строка", Параметры);
|
OPI_Инструменты.ДобавитьПоле("continuation-token", ТокенСтраницы, "Строка", Параметры);
|
||||||
@ -179,9 +179,9 @@
|
|||||||
|
|
||||||
URL = ПолучитьURLСервиса(ОсновныеДанные);
|
URL = ПолучитьURLСервиса(ОсновныеДанные);
|
||||||
URL = URL + OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
|
URL = URL + OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
|
||||||
|
|
||||||
ОсновныеДанные.Вставить("URL", URL);
|
ОсновныеДанные.Вставить("URL", URL);
|
||||||
|
|
||||||
Ответ = ОтправитьЗапросБезТела("GET", ОсновныеДанные, Заголовки);
|
Ответ = ОтправитьЗапросБезТела("GET", ОсновныеДанные, Заголовки);
|
||||||
|
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
@ -256,9 +256,9 @@
|
|||||||
ШаблонЗапроса = "";
|
ШаблонЗапроса = "";
|
||||||
|
|
||||||
Для Н = 1 По 6 Цикл
|
Для Н = 1 По 6 Цикл
|
||||||
|
|
||||||
ШаблонЗапроса = ШаблонЗапроса + "%" + Строка(Н) + ?(Н = 6, "", Символы.ПС);
|
ШаблонЗапроса = ШаблонЗапроса + "%" + Строка(Н) + ?(Н = 6, "", Символы.ПС);
|
||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
Метод = вРег(Метод);
|
Метод = вРег(Метод);
|
||||||
@ -464,32 +464,32 @@
|
|||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ОформитьОтвет(Знач Ответ, Знач ОжидаютсяДвоичные = Ложь)
|
Функция ОформитьОтвет(Знач Ответ, Знач ОжидаютсяДвоичные = Ложь)
|
||||||
|
|
||||||
Статус = Ответ.КодСостояния;
|
Статус = Ответ.КодСостояния;
|
||||||
|
|
||||||
Если Не ОжидаютсяДвоичные Или Статус > 299 Тогда
|
Если Не ОжидаютсяДвоичные Или Статус > 299 Тогда
|
||||||
|
|
||||||
ТелоОтвета = Ответ.ПолучитьТелоКакСтроку();
|
ТелоОтвета = Ответ.ПолучитьТелоКакСтроку();
|
||||||
ТелоОтвета = СокрЛП(ТелоОтвета);
|
ТелоОтвета = СокрЛП(ТелоОтвета);
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(ТелоОтвета) Тогда
|
Если ЗначениеЗаполнено(ТелоОтвета) Тогда
|
||||||
|
|
||||||
Попытка
|
Попытка
|
||||||
ДанныеОтвета = OPI_Инструменты.ОбработатьXML(ТелоОтвета);
|
ДанныеОтвета = OPI_Инструменты.ОбработатьXML(ТелоОтвета);
|
||||||
Исключение
|
Исключение
|
||||||
ДанныеОтвета = Новый Структура("notXMLMessage", ТелоОтвета);
|
ДанныеОтвета = Новый Структура("notXMLMessage", ТелоОтвета);
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
|
|
||||||
Иначе
|
Иначе
|
||||||
ДанныеОтвета = Новый Структура;
|
ДанныеОтвета = Новый Структура;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ДанныеОтвета = Новый Структура("status,response", Статус, ДанныеОтвета);
|
ДанныеОтвета = Новый Структура("status,response", Статус, ДанныеОтвета);
|
||||||
|
|
||||||
Иначе
|
Иначе
|
||||||
ДанныеОтвета = Ответ.ПолучитьТелоКакДвоичныеДанные();
|
ДанныеОтвета = Ответ.ПолучитьТелоКакДвоичныеДанные();
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Возврат ДанныеОтвета;
|
Возврат ДанныеОтвета;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
@ -531,17 +531,17 @@
|
|||||||
Если Не ЗначениеЗаполнено(Заголовки) Тогда
|
Если Не ЗначениеЗаполнено(Заголовки) Тогда
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Заголовки);
|
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Заголовки);
|
||||||
|
|
||||||
Если ТипЗнч(Заголовки) = Тип("Массив") Тогда
|
Если ТипЗнч(Заголовки) = Тип("Массив") Тогда
|
||||||
ВызватьИсключение "Ошибка установки дополнительных заголовков";
|
ВызватьИсключение "Ошибка установки дополнительных заголовков";
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Для Каждого Заголовок Из Заголовки Цикл
|
Для Каждого Заголовок Из Заголовки Цикл
|
||||||
Запрос.Заголовки.Вставить(Заголовок.Ключ, Заголовок.Значение);
|
Запрос.Заголовки.Вставить(Заголовок.Ключ, Заголовок.Значение);
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
@ -14650,14 +14650,14 @@
|
|||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Процедура S3_ПолучитьСписокБакетов(ПараметрыФункции)
|
Процедура S3_ПолучитьСписокБакетов(ПараметрыФункции)
|
||||||
|
|
||||||
URL = ПараметрыФункции["S3_URL"];
|
URL = ПараметрыФункции["S3_URL"];
|
||||||
AccessKey = ПараметрыФункции["S3_AccessKey"];
|
AccessKey = ПараметрыФункции["S3_AccessKey"];
|
||||||
SecretKey = ПараметрыФункции["S3_SecretKey"];
|
SecretKey = ПараметрыФункции["S3_SecretKey"];
|
||||||
Region = "BTC";
|
Region = "BTC";
|
||||||
|
|
||||||
ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
|
ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
|
||||||
|
|
||||||
Результат = OPI_S3.ПолучитьСписокБакетов(ОсновныеДанные);
|
Результат = OPI_S3.ПолучитьСписокБакетов(ОсновныеДанные);
|
||||||
|
|
||||||
// END
|
// END
|
||||||
|
@ -1990,9 +1990,9 @@
|
|||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ПолучитьОбщийМодуль(Знач Имя)
|
Функция ПолучитьОбщийМодуль(Знач Имя)
|
||||||
|
|
||||||
Модуль = Вычислить(Имя);
|
Модуль = Вычислить(Имя);
|
||||||
|
|
||||||
Возврат Модуль;
|
Возврат Модуль;
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
@ -685,41 +685,41 @@
|
|||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ОбработатьXML(XML) Экспорт
|
Функция ОбработатьXML(XML) Экспорт
|
||||||
|
|
||||||
НачалоОбработкиXML(XML);
|
НачалоОбработкиXML(XML);
|
||||||
|
|
||||||
ВозвращаемоеЗначение = Новый Соответствие;
|
ВозвращаемоеЗначение = Новый Соответствие;
|
||||||
|
|
||||||
Пока XML.Прочитать() Цикл
|
Пока XML.Прочитать() Цикл
|
||||||
|
|
||||||
ТипУзла = XML.ТипУзла;
|
ТипУзла = XML.ТипУзла;
|
||||||
ИмяУзла = XML.Имя;
|
ИмяУзла = XML.Имя;
|
||||||
|
|
||||||
СуществующееЗначение = ВозвращаемоеЗначение.Получить(ИмяУзла);
|
СуществующееЗначение = ВозвращаемоеЗначение.Получить(ИмяУзла);
|
||||||
|
|
||||||
Если ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
|
Если ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
|
||||||
|
|
||||||
Если СуществующееЗначение = Неопределено Тогда
|
Если СуществующееЗначение = Неопределено Тогда
|
||||||
ВозвращаемоеЗначение.Вставить(ИмяУзла, ОбработатьXML(XML));
|
ВозвращаемоеЗначение.Вставить(ИмяУзла, ОбработатьXML(XML));
|
||||||
Иначе
|
Иначе
|
||||||
ЗначениеВМассив(СуществующееЗначение);
|
ЗначениеВМассив(СуществующееЗначение);
|
||||||
СуществующееЗначение.Добавить(ОбработатьXML(XML));
|
СуществующееЗначение.Добавить(ОбработатьXML(XML));
|
||||||
ВозвращаемоеЗначение.Вставить(ИмяУзла, СуществующееЗначение);
|
ВозвращаемоеЗначение.Вставить(ИмяУзла, СуществующееЗначение);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Иначе
|
Иначе
|
||||||
|
|
||||||
Если Не ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
|
Если Не ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
|
||||||
ВозвращаемоеЗначение = XML.Значение;
|
ВозвращаемоеЗначение = XML.Значение;
|
||||||
XML.Прочитать();
|
XML.Прочитать();
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Прервать;
|
Прервать;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
Возврат ВозвращаемоеЗначение;
|
Возврат ВозвращаемоеЗначение;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
@ -729,7 +729,7 @@
|
|||||||
Если ТипЗнч(Значение) = Тип("Массив") Тогда
|
Если ТипЗнч(Значение) = Тип("Массив") Тогда
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Значение_ = Новый Массив;
|
Значение_ = Новый Массив;
|
||||||
Значение_.Добавить(Значение);
|
Значение_.Добавить(Значение);
|
||||||
Значение = Значение_;
|
Значение = Значение_;
|
||||||
@ -1312,13 +1312,13 @@
|
|||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Процедура НачалоОбработкиXML(XML)
|
Процедура НачалоОбработкиXML(XML)
|
||||||
|
|
||||||
Если Не ТипЗнч(XML) = Тип("ЧтениеXML") Тогда
|
Если Не ТипЗнч(XML) = Тип("ЧтениеXML") Тогда
|
||||||
XML_ = XML;
|
XML_ = XML;
|
||||||
XML = Новый ЧтениеXML;
|
XML = Новый ЧтениеXML;
|
||||||
XML.УстановитьСтроку(XML_);
|
XML.УстановитьСтроку(XML_);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
#Область GZip
|
#Область GZip
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// OneScript: ./OInt/core/Modules/OPI_S3.os
|
// OneScript: ./OInt/core/Modules/OPI_S3.os
|
||||||
// Lib: S3
|
// Lib: S3
|
||||||
// CLI: s3
|
// CLI: s3
|
||||||
|
|
||||||
@ -93,13 +93,13 @@
|
|||||||
|
|
||||||
Запрос = OPI_Инструменты.СоздатьЗапрос(Адрес);
|
Запрос = OPI_Инструменты.СоздатьЗапрос(Адрес);
|
||||||
Соединение = OPI_Инструменты.СоздатьСоединение(Сервер, Защищенное);
|
Соединение = OPI_Инструменты.СоздатьСоединение(Сервер, Защищенное);
|
||||||
|
|
||||||
ДобавитьДополнительныеЗаголовки(Запрос, Заголовки);
|
ДобавитьДополнительныеЗаголовки(Запрос, Заголовки);
|
||||||
|
|
||||||
ЗаголовокАвторизации = СоздатьЗаголовокАвторизации(ОсновныеДанные, Запрос, Соединение, Метод);
|
ЗаголовокАвторизации = СоздатьЗаголовокАвторизации(ОсновныеДанные, Запрос, Соединение, Метод);
|
||||||
Запрос.Заголовки.Вставить("Authorization", ЗаголовокАвторизации);
|
Запрос.Заголовки.Вставить("Authorization", ЗаголовокАвторизации);
|
||||||
|
|
||||||
Ответ = OPI_Инструменты.ВыполнитьЗапрос(Запрос, Соединение, Метод, , Истина);
|
Ответ = OPI_Инструменты.ВыполнитьЗапрос(Запрос, Соединение, Метод, , Истина);
|
||||||
Ответ = ОформитьОтвет(Ответ);
|
Ответ = ОформитьОтвет(Ответ);
|
||||||
|
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
@ -152,7 +152,7 @@
|
|||||||
|
|
||||||
// Получить список бакетов
|
// Получить список бакетов
|
||||||
// Получает список бакетов. Возможно использование отборов, если они поддерживаются сервисом
|
// Получает список бакетов. Возможно использование отборов, если они поддерживаются сервисом
|
||||||
//
|
//
|
||||||
// Примечание:
|
// Примечание:
|
||||||
// Метод в документации AWS: [ListBuckets](@docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html)
|
// Метод в документации AWS: [ListBuckets](@docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html)
|
||||||
//
|
//
|
||||||
@ -170,7 +170,7 @@
|
|||||||
, Знач Регион = ""
|
, Знач Регион = ""
|
||||||
, Знач ТокенСтраницы = ""
|
, Знач ТокенСтраницы = ""
|
||||||
, Знач Заголовки = Неопределено) Экспорт
|
, Знач Заголовки = Неопределено) Экспорт
|
||||||
|
|
||||||
Параметры = Новый Соответствие;
|
Параметры = Новый Соответствие;
|
||||||
OPI_Инструменты.ДобавитьПоле("bucket-region" , Регион , "Строка", Параметры);
|
OPI_Инструменты.ДобавитьПоле("bucket-region" , Регион , "Строка", Параметры);
|
||||||
OPI_Инструменты.ДобавитьПоле("continuation-token", ТокенСтраницы, "Строка", Параметры);
|
OPI_Инструменты.ДобавитьПоле("continuation-token", ТокенСтраницы, "Строка", Параметры);
|
||||||
@ -179,9 +179,9 @@
|
|||||||
|
|
||||||
URL = ПолучитьURLСервиса(ОсновныеДанные);
|
URL = ПолучитьURLСервиса(ОсновныеДанные);
|
||||||
URL = URL + OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
|
URL = URL + OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
|
||||||
|
|
||||||
ОсновныеДанные.Вставить("URL", URL);
|
ОсновныеДанные.Вставить("URL", URL);
|
||||||
|
|
||||||
Ответ = ОтправитьЗапросБезТела("GET", ОсновныеДанные, Заголовки);
|
Ответ = ОтправитьЗапросБезТела("GET", ОсновныеДанные, Заголовки);
|
||||||
|
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
@ -256,9 +256,9 @@
|
|||||||
ШаблонЗапроса = "";
|
ШаблонЗапроса = "";
|
||||||
|
|
||||||
Для Н = 1 По 6 Цикл
|
Для Н = 1 По 6 Цикл
|
||||||
|
|
||||||
ШаблонЗапроса = ШаблонЗапроса + "%" + Строка(Н) + ?(Н = 6, "", Символы.ПС);
|
ШаблонЗапроса = ШаблонЗапроса + "%" + Строка(Н) + ?(Н = 6, "", Символы.ПС);
|
||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
Метод = вРег(Метод);
|
Метод = вРег(Метод);
|
||||||
@ -464,32 +464,32 @@
|
|||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ОформитьОтвет(Знач Ответ, Знач ОжидаютсяДвоичные = Ложь)
|
Функция ОформитьОтвет(Знач Ответ, Знач ОжидаютсяДвоичные = Ложь)
|
||||||
|
|
||||||
Статус = Ответ.КодСостояния;
|
Статус = Ответ.КодСостояния;
|
||||||
|
|
||||||
Если Не ОжидаютсяДвоичные Или Статус > 299 Тогда
|
Если Не ОжидаютсяДвоичные Или Статус > 299 Тогда
|
||||||
|
|
||||||
ТелоОтвета = Ответ.ПолучитьТелоКакСтроку();
|
ТелоОтвета = Ответ.ПолучитьТелоКакСтроку();
|
||||||
ТелоОтвета = СокрЛП(ТелоОтвета);
|
ТелоОтвета = СокрЛП(ТелоОтвета);
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(ТелоОтвета) Тогда
|
Если ЗначениеЗаполнено(ТелоОтвета) Тогда
|
||||||
|
|
||||||
Попытка
|
Попытка
|
||||||
ДанныеОтвета = OPI_Инструменты.ОбработатьXML(ТелоОтвета);
|
ДанныеОтвета = OPI_Инструменты.ОбработатьXML(ТелоОтвета);
|
||||||
Исключение
|
Исключение
|
||||||
ДанныеОтвета = Новый Структура("notXMLMessage", ТелоОтвета);
|
ДанныеОтвета = Новый Структура("notXMLMessage", ТелоОтвета);
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
|
|
||||||
Иначе
|
Иначе
|
||||||
ДанныеОтвета = Новый Структура;
|
ДанныеОтвета = Новый Структура;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ДанныеОтвета = Новый Структура("status,response", Статус, ДанныеОтвета);
|
ДанныеОтвета = Новый Структура("status,response", Статус, ДанныеОтвета);
|
||||||
|
|
||||||
Иначе
|
Иначе
|
||||||
ДанныеОтвета = Ответ.ПолучитьТелоКакДвоичныеДанные();
|
ДанныеОтвета = Ответ.ПолучитьТелоКакДвоичныеДанные();
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Возврат ДанныеОтвета;
|
Возврат ДанныеОтвета;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
@ -531,17 +531,17 @@
|
|||||||
Если Не ЗначениеЗаполнено(Заголовки) Тогда
|
Если Не ЗначениеЗаполнено(Заголовки) Тогда
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Заголовки);
|
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Заголовки);
|
||||||
|
|
||||||
Если ТипЗнч(Заголовки) = Тип("Массив") Тогда
|
Если ТипЗнч(Заголовки) = Тип("Массив") Тогда
|
||||||
ВызватьИсключение "Ошибка установки дополнительных заголовков";
|
ВызватьИсключение "Ошибка установки дополнительных заголовков";
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Для Каждого Заголовок Из Заголовки Цикл
|
Для Каждого Заголовок Из Заголовки Цикл
|
||||||
Запрос.Заголовки.Вставить(Заголовок.Ключ, Заголовок.Значение);
|
Запрос.Заголовки.Вставить(Заголовок.Ключ, Заголовок.Значение);
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// OneScript: ./OInt/tools/Modules/internal/Modules/OPI_Инструменты.os
|
// OneScript: ./OInt/tools/Modules/internal/Modules/OPI_Инструменты.os
|
||||||
|
|
||||||
// MIT License
|
// MIT License
|
||||||
|
|
||||||
@ -685,41 +685,41 @@
|
|||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ОбработатьXML(XML) Экспорт
|
Функция ОбработатьXML(XML) Экспорт
|
||||||
|
|
||||||
НачалоОбработкиXML(XML);
|
НачалоОбработкиXML(XML);
|
||||||
|
|
||||||
ВозвращаемоеЗначение = Новый Соответствие;
|
ВозвращаемоеЗначение = Новый Соответствие;
|
||||||
|
|
||||||
Пока XML.Прочитать() Цикл
|
Пока XML.Прочитать() Цикл
|
||||||
|
|
||||||
ТипУзла = XML.ТипУзла;
|
ТипУзла = XML.ТипУзла;
|
||||||
ИмяУзла = XML.Имя;
|
ИмяУзла = XML.Имя;
|
||||||
|
|
||||||
СуществующееЗначение = ВозвращаемоеЗначение.Получить(ИмяУзла);
|
СуществующееЗначение = ВозвращаемоеЗначение.Получить(ИмяУзла);
|
||||||
|
|
||||||
Если ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
|
Если ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
|
||||||
|
|
||||||
Если СуществующееЗначение = Неопределено Тогда
|
Если СуществующееЗначение = Неопределено Тогда
|
||||||
ВозвращаемоеЗначение.Вставить(ИмяУзла, ОбработатьXML(XML));
|
ВозвращаемоеЗначение.Вставить(ИмяУзла, ОбработатьXML(XML));
|
||||||
Иначе
|
Иначе
|
||||||
ЗначениеВМассив(СуществующееЗначение);
|
ЗначениеВМассив(СуществующееЗначение);
|
||||||
СуществующееЗначение.Добавить(ОбработатьXML(XML));
|
СуществующееЗначение.Добавить(ОбработатьXML(XML));
|
||||||
ВозвращаемоеЗначение.Вставить(ИмяУзла, СуществующееЗначение);
|
ВозвращаемоеЗначение.Вставить(ИмяУзла, СуществующееЗначение);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Иначе
|
Иначе
|
||||||
|
|
||||||
Если Не ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
|
Если Не ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
|
||||||
ВозвращаемоеЗначение = XML.Значение;
|
ВозвращаемоеЗначение = XML.Значение;
|
||||||
XML.Прочитать();
|
XML.Прочитать();
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Прервать;
|
Прервать;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
Возврат ВозвращаемоеЗначение;
|
Возврат ВозвращаемоеЗначение;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
@ -729,7 +729,7 @@
|
|||||||
Если ТипЗнч(Значение) = Тип("Массив") Тогда
|
Если ТипЗнч(Значение) = Тип("Массив") Тогда
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Значение_ = Новый Массив;
|
Значение_ = Новый Массив;
|
||||||
Значение_.Добавить(Значение);
|
Значение_.Добавить(Значение);
|
||||||
Значение = Значение_;
|
Значение = Значение_;
|
||||||
@ -1312,13 +1312,13 @@
|
|||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Процедура НачалоОбработкиXML(XML)
|
Процедура НачалоОбработкиXML(XML)
|
||||||
|
|
||||||
Если Не ТипЗнч(XML) = Тип("ЧтениеXML") Тогда
|
Если Не ТипЗнч(XML) = Тип("ЧтениеXML") Тогда
|
||||||
XML_ = XML;
|
XML_ = XML;
|
||||||
XML = Новый ЧтениеXML;
|
XML = Новый ЧтениеXML;
|
||||||
XML.УстановитьСтроку(XML_);
|
XML.УстановитьСтроку(XML_);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
#Область GZip
|
#Область GZip
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// OneScript: ./OInt/tests/Modules/internal/OPI_Тесты.os
|
// OneScript: ./OInt/tests/Modules/internal/OPI_Тесты.os
|
||||||
|
|
||||||
// MIT License
|
// MIT License
|
||||||
|
|
||||||
@ -14650,14 +14650,14 @@
|
|||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Процедура S3_ПолучитьСписокБакетов(ПараметрыФункции)
|
Процедура S3_ПолучитьСписокБакетов(ПараметрыФункции)
|
||||||
|
|
||||||
URL = ПараметрыФункции["S3_URL"];
|
URL = ПараметрыФункции["S3_URL"];
|
||||||
AccessKey = ПараметрыФункции["S3_AccessKey"];
|
AccessKey = ПараметрыФункции["S3_AccessKey"];
|
||||||
SecretKey = ПараметрыФункции["S3_SecretKey"];
|
SecretKey = ПараметрыФункции["S3_SecretKey"];
|
||||||
Region = "BTC";
|
Region = "BTC";
|
||||||
|
|
||||||
ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
|
ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
|
||||||
|
|
||||||
Результат = OPI_S3.ПолучитьСписокБакетов(ОсновныеДанные);
|
Результат = OPI_S3.ПолучитьСписокБакетов(ОсновныеДанные);
|
||||||
|
|
||||||
// END
|
// END
|
||||||
|
@ -82,6 +82,16 @@
|
|||||||
НоваяСтрока.Область = "Общие методы";
|
НоваяСтрока.Область = "Общие методы";
|
||||||
|
|
||||||
|
|
||||||
|
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||||
|
НоваяСтрока.Библиотека = "s3";
|
||||||
|
НоваяСтрока.Модуль = "OPI_S3";
|
||||||
|
НоваяСтрока.Метод = "ОтправитьЗапросБезТела";
|
||||||
|
НоваяСтрока.МетодПоиска = "ОТПРАВИТЬЗАПРОСБЕЗТЕЛА";
|
||||||
|
НоваяСтрока.Параметр = "--headers";
|
||||||
|
НоваяСтрока.Описание = "Дополнительные заголовки запроса, если необходимо (необяз. по ум. - Пустое значение)";
|
||||||
|
НоваяСтрока.Область = "Общие методы";
|
||||||
|
|
||||||
|
|
||||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||||
НоваяСтрока.Библиотека = "s3";
|
НоваяСтрока.Библиотека = "s3";
|
||||||
НоваяСтрока.Модуль = "OPI_S3";
|
НоваяСтрока.Модуль = "OPI_S3";
|
||||||
@ -103,6 +113,16 @@
|
|||||||
НоваяСтрока.Область = "Работа с бакетами";
|
НоваяСтрока.Область = "Работа с бакетами";
|
||||||
|
|
||||||
|
|
||||||
|
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||||
|
НоваяСтрока.Библиотека = "s3";
|
||||||
|
НоваяСтрока.Модуль = "OPI_S3";
|
||||||
|
НоваяСтрока.Метод = "СоздатьБакет";
|
||||||
|
НоваяСтрока.МетодПоиска = "СОЗДАТЬБАКЕТ";
|
||||||
|
НоваяСтрока.Параметр = "--headers";
|
||||||
|
НоваяСтрока.Описание = "Дополнительные заголовки запроса, если необходимо (необяз. по ум. - Пустое значение)";
|
||||||
|
НоваяСтрока.Область = "Работа с бакетами";
|
||||||
|
|
||||||
|
|
||||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||||
НоваяСтрока.Библиотека = "s3";
|
НоваяСтрока.Библиотека = "s3";
|
||||||
НоваяСтрока.Модуль = "OPI_S3";
|
НоваяСтрока.Модуль = "OPI_S3";
|
||||||
@ -123,6 +143,67 @@
|
|||||||
НоваяСтрока.Описание = "Основные данные запроса. См. ПолучитьСтруктуруДанных";
|
НоваяСтрока.Описание = "Основные данные запроса. См. ПолучитьСтруктуруДанных";
|
||||||
НоваяСтрока.Область = "Работа с бакетами";
|
НоваяСтрока.Область = "Работа с бакетами";
|
||||||
|
|
||||||
|
|
||||||
|
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||||
|
НоваяСтрока.Библиотека = "s3";
|
||||||
|
НоваяСтрока.Модуль = "OPI_S3";
|
||||||
|
НоваяСтрока.Метод = "УдалитьБакет";
|
||||||
|
НоваяСтрока.МетодПоиска = "УДАЛИТЬБАКЕТ";
|
||||||
|
НоваяСтрока.Параметр = "--headers";
|
||||||
|
НоваяСтрока.Описание = "Дополнительные заголовки запроса, если необходимо (необяз. по ум. - Пустое значение)";
|
||||||
|
НоваяСтрока.Область = "Работа с бакетами";
|
||||||
|
|
||||||
|
|
||||||
|
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||||
|
НоваяСтрока.Библиотека = "s3";
|
||||||
|
НоваяСтрока.Модуль = "OPI_S3";
|
||||||
|
НоваяСтрока.Метод = "ПолучитьСписокБакетов";
|
||||||
|
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОКБАКЕТОВ";
|
||||||
|
НоваяСтрока.Параметр = "--data";
|
||||||
|
НоваяСтрока.Описание = "Основные данные запроса. См. ПолучитьСтруктуруДанных";
|
||||||
|
НоваяСтрока.Область = "Работа с бакетами";
|
||||||
|
НоваяСтрока.ОписаниеМетода = "Получает список бакетов. Возможно использование отборов, если они поддерживаются сервисом";
|
||||||
|
|
||||||
|
|
||||||
|
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||||
|
НоваяСтрока.Библиотека = "s3";
|
||||||
|
НоваяСтрока.Модуль = "OPI_S3";
|
||||||
|
НоваяСтрока.Метод = "ПолучитьСписокБакетов";
|
||||||
|
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОКБАКЕТОВ";
|
||||||
|
НоваяСтрока.Параметр = "--prefix";
|
||||||
|
НоваяСтрока.Описание = "Отбор по началу имени, если необходимо (необяз. по ум. - Пустое значение)";
|
||||||
|
НоваяСтрока.Область = "Работа с бакетами";
|
||||||
|
|
||||||
|
|
||||||
|
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||||
|
НоваяСтрока.Библиотека = "s3";
|
||||||
|
НоваяСтрока.Модуль = "OPI_S3";
|
||||||
|
НоваяСтрока.Метод = "ПолучитьСписокБакетов";
|
||||||
|
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОКБАКЕТОВ";
|
||||||
|
НоваяСтрока.Параметр = "--region";
|
||||||
|
НоваяСтрока.Описание = "Отбор по региону бакета, если необходимо (необяз. по ум. - Пустое значение)";
|
||||||
|
НоваяСтрока.Область = "Работа с бакетами";
|
||||||
|
|
||||||
|
|
||||||
|
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||||
|
НоваяСтрока.Библиотека = "s3";
|
||||||
|
НоваяСтрока.Модуль = "OPI_S3";
|
||||||
|
НоваяСтрока.Метод = "ПолучитьСписокБакетов";
|
||||||
|
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОКБАКЕТОВ";
|
||||||
|
НоваяСтрока.Параметр = "--ctoken";
|
||||||
|
НоваяСтрока.Описание = "Токен страницы, если используется пагинация (необяз. по ум. - Пустое значение)";
|
||||||
|
НоваяСтрока.Область = "Работа с бакетами";
|
||||||
|
|
||||||
|
|
||||||
|
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||||
|
НоваяСтрока.Библиотека = "s3";
|
||||||
|
НоваяСтрока.Модуль = "OPI_S3";
|
||||||
|
НоваяСтрока.Метод = "ПолучитьСписокБакетов";
|
||||||
|
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОКБАКЕТОВ";
|
||||||
|
НоваяСтрока.Параметр = "--headers";
|
||||||
|
НоваяСтрока.Описание = "Дополнительные заголовки запроса, если необходимо (необяз. по ум. - Пустое значение)";
|
||||||
|
НоваяСтрока.Область = "Работа с бакетами";
|
||||||
|
|
||||||
Возврат ТаблицаСостава;
|
Возврат ТаблицаСостава;
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user