mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-03-25 21:39:21 +02:00
Main build (Jenkins)
This commit is contained in:
parent
8fc25440a2
commit
97059b1124
6
docs/en/data/S3/UploadFullObject.json
Normal file
6
docs/en/data/S3/UploadFullObject.json
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"URL": "storage-155.s3hoster.by",
|
||||
"AccessKey": "BRN5RKJE67...",
|
||||
"SecretKey": "NNhv+i9PrytpT8Tu0C1N...",
|
||||
"Entity": "https://api.athenaeum.digital/test_data/picture.jpg"
|
||||
}
|
12
docs/en/examples/S3/UploadFullObject.txt
Normal file
12
docs/en/examples/S3/UploadFullObject.txt
Normal file
@ -0,0 +1,12 @@
|
||||
URL = "storage-155.s3hoster.by";
|
||||
AccessKey = "BRN5RKJE67...";
|
||||
SecretKey = "NNhv+i9PrytpT8Tu0C1N...";
|
||||
Region = "BTC";
|
||||
|
||||
BasicData = OPI_S3.GetBasicDataStructure(URL, AccessKey, SecretKey, Region);
|
||||
|
||||
Name = "pictureSmall.jpg";
|
||||
Bucket = "opi-gpbucket3";
|
||||
Entity = "https://api.athenaeum.digital/test_data/picture.jpg"; // URL, Path or Binary Data
|
||||
|
||||
Result = OPI_S3.UploadFullObject(Name, Bucket, Entity, BasicData);
|
@ -29,7 +29,7 @@ import TabItem from '@theme/TabItem';
|
||||
:::tip
|
||||
Method at AWS documentation: [CompleteMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html)
|
||||
|
||||
This is a service method. A `LoadObject` method is intended for the main scenario of files uploading
|
||||
This is a service method. A `PutObject` method is intended for the main scenario of files uploading
|
||||
:::
|
||||
<br/>
|
||||
|
||||
|
@ -27,7 +27,7 @@ import TabItem from '@theme/TabItem';
|
||||
:::tip
|
||||
Method at AWS documentation: [CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)
|
||||
|
||||
This is a service method. A `LoadObject` method is intended for the main scenario of files uploading
|
||||
This is a service method. A `PutObject` method is intended for the main scenario of files uploading<br/>Using multipart upload for files < 5 MB or when the size of a single chunk is < 5 MB will result in an error
|
||||
:::
|
||||
<br/>
|
||||
|
||||
|
@ -28,7 +28,7 @@ import TabItem from '@theme/TabItem';
|
||||
:::tip
|
||||
Method at AWS documentation: [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
|
||||
|
||||
This is a service method. A `LoadObject` method is intended for the main scenario of files uploading
|
||||
This is a service method. A `PutObject` method is intended for the main scenario of files uploading<br/>Using this method for large files may cause errors
|
||||
|
||||
Parameters with Binary data type can also accept file paths on disk and URLs
|
||||
:::
|
||||
@ -36,7 +36,18 @@ Parameters with Binary data type can also accept file paths on disk and URLs
|
||||
|
||||
|
||||
```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);
|
||||
|
||||
Name = "pictureSmall.jpg";
|
||||
Bucket = "opi-gpbucket3";
|
||||
Entity = "https://api.athenaeum.digital/test_data/picture.jpg"; // URL, Path or Binary Data
|
||||
|
||||
Result = OPI_S3.UploadFullObject(Name, Bucket, Entity, BasicData);
|
||||
```
|
||||
|
||||
|
||||
|
@ -30,7 +30,7 @@ import TabItem from '@theme/TabItem';
|
||||
:::tip
|
||||
Method at AWS documentation: [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)
|
||||
|
||||
This is a service method. A `LoadObject` method is intended for the main scenario of files uploading
|
||||
This is a service method. A `PutObject` method is intended for the main scenario of files uploading
|
||||
|
||||
Parameters with Binary data type can also accept file paths on disk and URLs
|
||||
:::
|
||||
|
6
docs/ru/data/S3/ЗагрузитьОбъектЦеликом.json
Normal file
6
docs/ru/data/S3/ЗагрузитьОбъектЦеликом.json
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"URL": "storage-155.s3hoster.by",
|
||||
"AccessKey": "BRN5RKJE67...",
|
||||
"SecretKey": "NNhv+i9PrytpT8Tu0C1N...",
|
||||
"Содержимое": "https://api.athenaeum.digital/test_data/picture.jpg"
|
||||
}
|
12
docs/ru/examples/S3/ЗагрузитьОбъектЦеликом.txt
Normal file
12
docs/ru/examples/S3/ЗагрузитьОбъектЦеликом.txt
Normal file
@ -0,0 +1,12 @@
|
||||
URL = "storage-155.s3hoster.by";
|
||||
AccessKey = "BRN5RKJE67...";
|
||||
SecretKey = "NNhv+i9PrytpT8Tu0C1N...";
|
||||
Region = "BTC";
|
||||
|
||||
ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
|
||||
|
||||
Наименование = "pictureSmall.jpg";
|
||||
Бакет = "opi-gpbucket3";
|
||||
Содержимое = "https://api.athenaeum.digital/test_data/picture.jpg"; // URL, Путь или Двоичные данные
|
||||
|
||||
Результат = OPI_S3.ЗагрузитьОбъектЦеликом(Наименование, Бакет, Содержимое, ОсновныеДанные);
|
@ -27,7 +27,7 @@ import TabItem from '@theme/TabItem';
|
||||
:::tip
|
||||
Метод в документации AWS: [CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)
|
||||
|
||||
Это служебный метод. Для основного сценария загрузки файлов предназначен единый метод `ЗагрузитьОбъект`
|
||||
Это служебный метод. Для основного сценария загрузки файлов предназначен единый метод `ЗагрузитьОбъект`<br/>Использование загрузки частями для файлов < 5 МБ или при размере одной части < 5 МБ приведет к ошибке
|
||||
:::
|
||||
<br/>
|
||||
|
||||
|
@ -28,7 +28,7 @@ import TabItem from '@theme/TabItem';
|
||||
:::tip
|
||||
Метод в документации AWS: [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
|
||||
|
||||
Это служебный метод. Для основного сценария загрузки файлов предназначен единый метод `ЗагрузитьОбъект`
|
||||
Это служебный метод. Для основного сценария загрузки файлов предназначен единый метод `ЗагрузитьОбъект`<br/>Использование данного метода для больших файлов может приводить к сбоям
|
||||
|
||||
Параметры с типом данных Двоичные данные могут принимать также пути к файлам на диске и URL
|
||||
:::
|
||||
@ -36,7 +36,18 @@ import TabItem from '@theme/TabItem';
|
||||
|
||||
|
||||
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
||||
URL = "storage-155.s3hoster.by";
|
||||
AccessKey = "BRN5RKJE67...";
|
||||
SecretKey = "NNhv+i9PrytpT8Tu0C1N...";
|
||||
Region = "BTC";
|
||||
|
||||
ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
|
||||
|
||||
Наименование = "pictureSmall.jpg";
|
||||
Бакет = "opi-gpbucket3";
|
||||
Содержимое = "https://api.athenaeum.digital/test_data/picture.jpg"; // URL, Путь или Двоичные данные
|
||||
|
||||
Результат = OPI_S3.ЗагрузитьОбъектЦеликом(Наименование, Бакет, Содержимое, ОсновныеДанные);
|
||||
```
|
||||
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -590,7 +590,8 @@ EndFunction
|
||||
//
|
||||
// Note
|
||||
// Method at AWS documentation: [PutObject](@docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
|
||||
// This is a service method. A `LoadObject` method is intended for the main scenario of files uploading
|
||||
// This is a service method. A `PutObject` method is intended for the main scenario of files uploading^
|
||||
// Using this method for large files may cause errors
|
||||
//
|
||||
// Parameters:
|
||||
// Name - String - Name of the object in the bucket - name
|
||||
@ -622,7 +623,8 @@ EndFunction
|
||||
//
|
||||
// Note
|
||||
// Method at AWS documentation: [CreateMultipartUpload](@docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)
|
||||
// This is a service method. A `LoadObject` method is intended for the main scenario of files uploading
|
||||
// This is a service method. A `PutObject` method is intended for the main scenario of files uploading^
|
||||
// Using multipart upload for files < 5 MB or when the size of a single chunk is < 5 MB will result in an error
|
||||
//
|
||||
// Parameters:
|
||||
// Name - String - Name of the object in the bucket - name
|
||||
@ -654,7 +656,7 @@ EndFunction
|
||||
//
|
||||
// Note
|
||||
// Method at AWS documentation: [UploadPart](@docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)
|
||||
// This is a service method. A `LoadObject` method is intended for the main scenario of files uploading
|
||||
// This is a service method. A `PutObject` method is intended for the main scenario of files uploading
|
||||
//
|
||||
// Parameters:
|
||||
// Name - String - Name of the object in the bucket - name
|
||||
@ -698,7 +700,7 @@ EndFunction
|
||||
//
|
||||
// Note
|
||||
// Method at AWS documentation: [CompleteMultipartUpload](@docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html)
|
||||
// This is a service method. A `LoadObject` method is intended for the main scenario of files uploading
|
||||
// This is a service method. A `PutObject` method is intended for the main scenario of files uploading
|
||||
//
|
||||
// Parameters:
|
||||
// Name - String - Name of the object in the bucket - name
|
||||
@ -1186,13 +1188,8 @@ EndFunction
|
||||
|
||||
Function CreateCanonicalRequest(Val Request, Val Connection, Val Method)
|
||||
|
||||
RequestBody = Request.ПолучитьТелоКакДвоичныеДанные();
|
||||
|
||||
If Not ValueIsFilled(RequestBody) Then
|
||||
RequestBody = ПолучитьДвоичныеДанныеИзСтроки("");
|
||||
EndIf;
|
||||
|
||||
HashSum = OPI_Cryptography.Hash(RequestBody, HashFunction.SHA256);
|
||||
RequestBody = OPI_Tools.GetRequestBody(Request);
|
||||
HashSum = OPI_Cryptography.Hash(RequestBody, HashFunction.SHA256);
|
||||
Request.Headers.Insert("x-amz-content-sha256", Lower(ПолучитьHexСтрокуИзДвоичныхДанных(HashSum)));
|
||||
|
||||
RequestTemplate = "";
|
||||
|
@ -2149,6 +2149,7 @@ Procedure AWS_ObjectsManagment() Export
|
||||
|
||||
S3_CreateBucket(TestParameters);
|
||||
S3_PutObject(TestParameters);
|
||||
S3_UploadFullObject(TestParameters);
|
||||
S3_InitPartsUpload(TestParameters);
|
||||
S3_UploadObjectPart(TestParameters);
|
||||
S3_FinishPartsUpload(TestParameters);
|
||||
@ -15074,6 +15075,30 @@ Procedure S3_PutObject(FunctionParameters)
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure S3_UploadFullObject(FunctionParameters)
|
||||
|
||||
URL = FunctionParameters["S3_URL"];
|
||||
AccessKey = FunctionParameters["S3_AccessKey"];
|
||||
SecretKey = FunctionParameters["S3_SecretKey"];
|
||||
Region = "BTC";
|
||||
|
||||
BasicData = OPI_S3.GetBasicDataStructure(URL, AccessKey, SecretKey, Region);
|
||||
|
||||
Name = "pictureSmall.jpg";
|
||||
Bucket = "opi-gpbucket3";
|
||||
Entity = FunctionParameters["Picture"]; // URL, Path or Binary Data
|
||||
|
||||
Result = OPI_S3.UploadFullObject(Name, Bucket, Entity, BasicData);
|
||||
|
||||
// END
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "UploadFullObject", "S3");
|
||||
OPI_TestDataRetrieval.Check_S3Success(Result);
|
||||
|
||||
OPI_S3.DeleteObject(Name, Bucket, BasicData);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure S3_DeleteObject(FunctionParameters)
|
||||
|
||||
URL = FunctionParameters["S3_URL"];
|
||||
|
@ -2141,9 +2141,12 @@ Procedure CLI_AWS_ObjectsManagment() Export
|
||||
OPI_TestDataRetrieval.ParameterToCollection("S3_SecretKey", TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("S3_URL" , TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("Audio" , TestParameters);
|
||||
|
||||
CLI_S3_CreateBucket(TestParameters);
|
||||
CLI_S3_PutObject(TestParameters);
|
||||
CLI_S3_UploadFullObject(TestParameters);
|
||||
CLI_S3_InitPartsUpload(TestParameters);
|
||||
CLI_S3_HeadObject(TestParameters);
|
||||
CLI_S3_CopyObject(TestParameters);
|
||||
CLI_S3_PutObjectTagging(TestParameters);
|
||||
@ -17254,6 +17257,42 @@ Procedure CLI_S3_PutObject(FunctionParameters)
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure CLI_S3_UploadFullObject(FunctionParameters)
|
||||
|
||||
URL = FunctionParameters["S3_URL"];
|
||||
AccessKey = FunctionParameters["S3_AccessKey"];
|
||||
SecretKey = FunctionParameters["S3_SecretKey"];
|
||||
Region = "BTC";
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("url" , URL);
|
||||
Options.Insert("access", AccessKey);
|
||||
Options.Insert("secret", SecretKey);
|
||||
Options.Insert("region", Region);
|
||||
|
||||
BasicData = OPI_TestDataRetrieval.ExecuteTestCLI("s3", "GetBasicDataStructure", Options);
|
||||
|
||||
Name = "pictureSmall.jpg";
|
||||
Bucket = "opi-gpbucket3";
|
||||
Entity = FunctionParameters["Picture"]; // URL, Path or Binary Data
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("name" , Name);
|
||||
Options.Insert("bucket", Bucket);
|
||||
Options.Insert("data" , Entity);
|
||||
Options.Insert("basic" , BasicData);
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("s3", "PutObject", Options);
|
||||
|
||||
// END
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "UploadFullObject", "S3");
|
||||
OPI_TestDataRetrieval.Check_S3Success(Result);
|
||||
|
||||
OPI_S3.DeleteObject(Name, Bucket, BasicData);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure CLI_S3_DeleteObject(FunctionParameters)
|
||||
|
||||
URL = FunctionParameters["S3_URL"];
|
||||
@ -17572,6 +17611,98 @@ Procedure CLI_S3_GetObject(FunctionParameters)
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure CLI_S3_InitPartsUpload(FunctionParameters)
|
||||
|
||||
URL = FunctionParameters["S3_URL"];
|
||||
AccessKey = FunctionParameters["S3_AccessKey"];
|
||||
SecretKey = FunctionParameters["S3_SecretKey"];
|
||||
Region = "BTC";
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("url" , URL);
|
||||
Options.Insert("access", AccessKey);
|
||||
Options.Insert("secret", SecretKey);
|
||||
Options.Insert("region", Region);
|
||||
|
||||
BasicData = OPI_TestDataRetrieval.ExecuteTestCLI("s3", "GetBasicDataStructure", Options);
|
||||
|
||||
Name = "fileChunked.mp3";
|
||||
Bucket = "opi-gpbucket3";
|
||||
|
||||
Entity = FunctionParameters["Audio"]; // URL, Path or Binary Data
|
||||
Entity = OPI_Tools.Get(Entity);
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("name" , Name);
|
||||
Options.Insert("bucket", Bucket);
|
||||
Options.Insert("basic" , BasicData);
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("s3", "InitPartsUpload", Options);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "InitPartsUpload", "S3");
|
||||
OPI_TestDataRetrieval.Check_S3Success(Result);
|
||||
|
||||
UploadID = Result["response"]["InitiateMultipartUploadResult"]["UploadId"];
|
||||
TotalSize = Entity.Size();
|
||||
ChunkSize = 5242880;
|
||||
BytesRead = 0;
|
||||
PartNumber = 1;
|
||||
|
||||
DataReader = New DataReader(Entity);
|
||||
SourceStream = DataReader.SourceStream();
|
||||
TagsArray = New Array;
|
||||
|
||||
WHile BytesRead < TotalSize Do
|
||||
|
||||
CurrentReading = DataReader.Read(ChunkSize);
|
||||
CurrentData = CurrentReading.GetBinaryData();
|
||||
|
||||
TFN = GetTempFileName();
|
||||
CurrentData.Write(TFN);
|
||||
|
||||
If CurrentData.Size() = 0 Then
|
||||
Break;
|
||||
EndIf;
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("name" , Name);
|
||||
Options.Insert("bucket" , Bucket);
|
||||
Options.Insert("basic" , BasicData);
|
||||
Options.Insert("upload" , UploadID);
|
||||
Options.Insert("part" , PartNumber);
|
||||
Options.Insert("content", TFN);
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("s3", "UploadObjectPart", Options);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "UploadObjectPart", "S3");
|
||||
OPI_TestDataRetrieval.Check_S3Success(Result);
|
||||
|
||||
BytesRead = SourceStream.CurrentPosition();
|
||||
TagsArray.Add(Result["headers"]["Etag"]);
|
||||
|
||||
DeleteFiles(TFN);
|
||||
Break;
|
||||
|
||||
PartNumber = PartNumber + 1;
|
||||
|
||||
EndDo;
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("name" , Name);
|
||||
Options.Insert("bucket", Bucket);
|
||||
Options.Insert("basic" , BasicData);
|
||||
Options.Insert("upload", UploadID);
|
||||
Options.Insert("tags" , TagsArray);
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("s3", "FinishPartsUpload", Options);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "FinishPartsUpload", "S3");
|
||||
OPI_TestDataRetrieval.Check_S3Success(Result);
|
||||
|
||||
OPI_S3.DeleteObject(Name, Bucket, BasicData);
|
||||
|
||||
EndProcedure
|
||||
|
||||
#EndRegion
|
||||
|
||||
#EndRegion
|
||||
|
@ -788,6 +788,35 @@ Function CopyCollection(Val Collection) Export
|
||||
|
||||
EndFunction
|
||||
|
||||
Function GetRequestBody(Val Request) Export
|
||||
|
||||
BFN = Request.GetBodyFileName();
|
||||
Body = Undefined;
|
||||
|
||||
If ValueIsFilled(BFN) Then
|
||||
|
||||
BodyFile = New File(BFN);
|
||||
|
||||
If Not BodyFile.Exist() Then
|
||||
Raise "A non-existent file is set for the request body";
|
||||
Else
|
||||
Body = New BinaryData(BFN);
|
||||
EndIf;
|
||||
|
||||
Else
|
||||
|
||||
Body = Request.ПолучитьТелоКакДвоичныеДанные();
|
||||
|
||||
EndIf;
|
||||
|
||||
If Body = Undefined Then
|
||||
Body = ПолучитьДвоичныеДанныеИзСтроки("");
|
||||
EndIf;
|
||||
|
||||
Return Body;
|
||||
|
||||
EndFunction
|
||||
|
||||
Procedure ValueToArray(Value) Export
|
||||
|
||||
If TypeOf(Value) = Type("Array") Then
|
||||
|
@ -590,7 +590,8 @@ EndFunction
|
||||
//
|
||||
// Note
|
||||
// Method at AWS documentation: [PutObject](@docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
|
||||
// This is a service method. A `LoadObject` method is intended for the main scenario of files uploading
|
||||
// This is a service method. A `PutObject` method is intended for the main scenario of files uploading^
|
||||
// Using this method for large files may cause errors
|
||||
//
|
||||
// Parameters:
|
||||
// Name - String - Name of the object in the bucket - name
|
||||
@ -622,7 +623,8 @@ EndFunction
|
||||
//
|
||||
// Note
|
||||
// Method at AWS documentation: [CreateMultipartUpload](@docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)
|
||||
// This is a service method. A `LoadObject` method is intended for the main scenario of files uploading
|
||||
// This is a service method. A `PutObject` method is intended for the main scenario of files uploading^
|
||||
// Using multipart upload for files < 5 MB or when the size of a single chunk is < 5 MB will result in an error
|
||||
//
|
||||
// Parameters:
|
||||
// Name - String - Name of the object in the bucket - name
|
||||
@ -654,7 +656,7 @@ EndFunction
|
||||
//
|
||||
// Note
|
||||
// Method at AWS documentation: [UploadPart](@docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)
|
||||
// This is a service method. A `LoadObject` method is intended for the main scenario of files uploading
|
||||
// This is a service method. A `PutObject` method is intended for the main scenario of files uploading
|
||||
//
|
||||
// Parameters:
|
||||
// Name - String - Name of the object in the bucket - name
|
||||
@ -698,7 +700,7 @@ EndFunction
|
||||
//
|
||||
// Note
|
||||
// Method at AWS documentation: [CompleteMultipartUpload](@docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html)
|
||||
// This is a service method. A `LoadObject` method is intended for the main scenario of files uploading
|
||||
// This is a service method. A `PutObject` method is intended for the main scenario of files uploading
|
||||
//
|
||||
// Parameters:
|
||||
// Name - String - Name of the object in the bucket - name
|
||||
@ -1186,13 +1188,8 @@ EndFunction
|
||||
|
||||
Function CreateCanonicalRequest(Val Request, Val Connection, Val Method)
|
||||
|
||||
RequestBody = Request.GetBodyAsBinaryData();
|
||||
|
||||
If Not ValueIsFilled(RequestBody) Then
|
||||
RequestBody = GetBinaryDataFromString("");
|
||||
EndIf;
|
||||
|
||||
HashSum = OPI_Cryptography.Hash(RequestBody, HashFunction.SHA256);
|
||||
RequestBody = OPI_Tools.GetRequestBody(Request);
|
||||
HashSum = OPI_Cryptography.Hash(RequestBody, HashFunction.SHA256);
|
||||
Request.Headers.Insert("x-amz-content-sha256", Lower(GetHexStringFromBinaryData(HashSum)));
|
||||
|
||||
RequestTemplate = "";
|
||||
|
@ -2149,6 +2149,7 @@ Procedure AWS_ObjectsManagment() Export
|
||||
|
||||
S3_CreateBucket(TestParameters);
|
||||
S3_PutObject(TestParameters);
|
||||
S3_UploadFullObject(TestParameters);
|
||||
S3_InitPartsUpload(TestParameters);
|
||||
S3_UploadObjectPart(TestParameters);
|
||||
S3_FinishPartsUpload(TestParameters);
|
||||
@ -15074,6 +15075,30 @@ Procedure S3_PutObject(FunctionParameters)
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure S3_UploadFullObject(FunctionParameters)
|
||||
|
||||
URL = FunctionParameters["S3_URL"];
|
||||
AccessKey = FunctionParameters["S3_AccessKey"];
|
||||
SecretKey = FunctionParameters["S3_SecretKey"];
|
||||
Region = "BTC";
|
||||
|
||||
BasicData = OPI_S3.GetBasicDataStructure(URL, AccessKey, SecretKey, Region);
|
||||
|
||||
Name = "pictureSmall.jpg";
|
||||
Bucket = "opi-gpbucket3";
|
||||
Entity = FunctionParameters["Picture"]; // URL, Path or Binary Data
|
||||
|
||||
Result = OPI_S3.UploadFullObject(Name, Bucket, Entity, BasicData);
|
||||
|
||||
// END
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "UploadFullObject", "S3");
|
||||
OPI_TestDataRetrieval.Check_S3Success(Result);
|
||||
|
||||
OPI_S3.DeleteObject(Name, Bucket, BasicData);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure S3_DeleteObject(FunctionParameters)
|
||||
|
||||
URL = FunctionParameters["S3_URL"];
|
||||
|
@ -2141,9 +2141,12 @@ Procedure CLI_AWS_ObjectsManagment() Export
|
||||
OPI_TestDataRetrieval.ParameterToCollection("S3_SecretKey", TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("S3_URL" , TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("Audio" , TestParameters);
|
||||
|
||||
CLI_S3_CreateBucket(TestParameters);
|
||||
CLI_S3_PutObject(TestParameters);
|
||||
CLI_S3_UploadFullObject(TestParameters);
|
||||
CLI_S3_InitPartsUpload(TestParameters);
|
||||
CLI_S3_HeadObject(TestParameters);
|
||||
CLI_S3_CopyObject(TestParameters);
|
||||
CLI_S3_PutObjectTagging(TestParameters);
|
||||
@ -17254,6 +17257,42 @@ Procedure CLI_S3_PutObject(FunctionParameters)
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure CLI_S3_UploadFullObject(FunctionParameters)
|
||||
|
||||
URL = FunctionParameters["S3_URL"];
|
||||
AccessKey = FunctionParameters["S3_AccessKey"];
|
||||
SecretKey = FunctionParameters["S3_SecretKey"];
|
||||
Region = "BTC";
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("url" , URL);
|
||||
Options.Insert("access", AccessKey);
|
||||
Options.Insert("secret", SecretKey);
|
||||
Options.Insert("region", Region);
|
||||
|
||||
BasicData = OPI_TestDataRetrieval.ExecuteTestCLI("s3", "GetBasicDataStructure", Options);
|
||||
|
||||
Name = "pictureSmall.jpg";
|
||||
Bucket = "opi-gpbucket3";
|
||||
Entity = FunctionParameters["Picture"]; // URL, Path or Binary Data
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("name" , Name);
|
||||
Options.Insert("bucket", Bucket);
|
||||
Options.Insert("data" , Entity);
|
||||
Options.Insert("basic" , BasicData);
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("s3", "PutObject", Options);
|
||||
|
||||
// END
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "UploadFullObject", "S3");
|
||||
OPI_TestDataRetrieval.Check_S3Success(Result);
|
||||
|
||||
OPI_S3.DeleteObject(Name, Bucket, BasicData);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure CLI_S3_DeleteObject(FunctionParameters)
|
||||
|
||||
URL = FunctionParameters["S3_URL"];
|
||||
@ -17572,6 +17611,98 @@ Procedure CLI_S3_GetObject(FunctionParameters)
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure CLI_S3_InitPartsUpload(FunctionParameters)
|
||||
|
||||
URL = FunctionParameters["S3_URL"];
|
||||
AccessKey = FunctionParameters["S3_AccessKey"];
|
||||
SecretKey = FunctionParameters["S3_SecretKey"];
|
||||
Region = "BTC";
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("url" , URL);
|
||||
Options.Insert("access", AccessKey);
|
||||
Options.Insert("secret", SecretKey);
|
||||
Options.Insert("region", Region);
|
||||
|
||||
BasicData = OPI_TestDataRetrieval.ExecuteTestCLI("s3", "GetBasicDataStructure", Options);
|
||||
|
||||
Name = "fileChunked.mp3";
|
||||
Bucket = "opi-gpbucket3";
|
||||
|
||||
Entity = FunctionParameters["Audio"]; // URL, Path or Binary Data
|
||||
Entity = OPI_Tools.Get(Entity);
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("name" , Name);
|
||||
Options.Insert("bucket", Bucket);
|
||||
Options.Insert("basic" , BasicData);
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("s3", "InitPartsUpload", Options);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "InitPartsUpload", "S3");
|
||||
OPI_TestDataRetrieval.Check_S3Success(Result);
|
||||
|
||||
UploadID = Result["response"]["InitiateMultipartUploadResult"]["UploadId"];
|
||||
TotalSize = Entity.Size();
|
||||
ChunkSize = 5242880;
|
||||
BytesRead = 0;
|
||||
PartNumber = 1;
|
||||
|
||||
DataReader = New DataReader(Entity);
|
||||
SourceStream = DataReader.SourceStream();
|
||||
TagsArray = New Array;
|
||||
|
||||
WHile BytesRead < TotalSize Do
|
||||
|
||||
CurrentReading = DataReader.Read(ChunkSize);
|
||||
CurrentData = CurrentReading.GetBinaryData();
|
||||
|
||||
TFN = GetTempFileName();
|
||||
CurrentData.Write(TFN);
|
||||
|
||||
If CurrentData.Size() = 0 Then
|
||||
Break;
|
||||
EndIf;
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("name" , Name);
|
||||
Options.Insert("bucket" , Bucket);
|
||||
Options.Insert("basic" , BasicData);
|
||||
Options.Insert("upload" , UploadID);
|
||||
Options.Insert("part" , PartNumber);
|
||||
Options.Insert("content", TFN);
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("s3", "UploadObjectPart", Options);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "UploadObjectPart", "S3");
|
||||
OPI_TestDataRetrieval.Check_S3Success(Result);
|
||||
|
||||
BytesRead = SourceStream.CurrentPosition();
|
||||
TagsArray.Add(Result["headers"]["Etag"]);
|
||||
|
||||
DeleteFiles(TFN);
|
||||
Break;
|
||||
|
||||
PartNumber = PartNumber + 1;
|
||||
|
||||
EndDo;
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("name" , Name);
|
||||
Options.Insert("bucket", Bucket);
|
||||
Options.Insert("basic" , BasicData);
|
||||
Options.Insert("upload", UploadID);
|
||||
Options.Insert("tags" , TagsArray);
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("s3", "FinishPartsUpload", Options);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "FinishPartsUpload", "S3");
|
||||
OPI_TestDataRetrieval.Check_S3Success(Result);
|
||||
|
||||
OPI_S3.DeleteObject(Name, Bucket, BasicData);
|
||||
|
||||
EndProcedure
|
||||
|
||||
#EndRegion
|
||||
|
||||
#EndRegion
|
||||
|
@ -788,6 +788,35 @@ Function CopyCollection(Val Collection) Export
|
||||
|
||||
EndFunction
|
||||
|
||||
Function GetRequestBody(Val Request) Export
|
||||
|
||||
BFN = Request.GetBodyFileName();
|
||||
Body = Undefined;
|
||||
|
||||
If ValueIsFilled(BFN) Then
|
||||
|
||||
BodyFile = New File(BFN);
|
||||
|
||||
If Not BodyFile.Exists() Then
|
||||
Raise "A non-existent file is set for the request body";
|
||||
Else
|
||||
Body = New BinaryData(BFN);
|
||||
EndIf;
|
||||
|
||||
Else
|
||||
|
||||
Body = Request.GetBodyAsBinaryData();
|
||||
|
||||
EndIf;
|
||||
|
||||
If Body = Undefined Then
|
||||
Body = GetBinaryDataFromString("");
|
||||
EndIf;
|
||||
|
||||
Return Body;
|
||||
|
||||
EndFunction
|
||||
|
||||
Procedure ValueToArray(Value) Export
|
||||
|
||||
If TypeOf(Value) = Type("Array") Then
|
||||
|
@ -15090,13 +15090,13 @@
|
||||
|
||||
Результат = OPI_S3.ЗагрузитьОбъектЦеликом(Наименование, Бакет, Содержимое, ОсновныеДанные);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗагрузитьОбъектЦеликом", "S3");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат);
|
||||
|
||||
OPI_S3.УдалитьОбъект(Наименование, Бакет, ОсновныеДанные);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗагрузитьОбъектЦеликом", "S3");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат);
|
||||
|
||||
OPI_S3.УдалитьОбъект(Наименование, Бакет, ОсновныеДанные);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура S3_УдалитьОбъект(ПараметрыФункции)
|
||||
|
@ -17284,13 +17284,13 @@
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ЗагрузитьОбъект", Опции);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗагрузитьОбъектЦеликом", "S3");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат);
|
||||
|
||||
OPI_S3.УдалитьОбъект(Наименование, Бакет, ОсновныеДанные);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗагрузитьОбъектЦеликом", "S3");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат);
|
||||
|
||||
OPI_S3.УдалитьОбъект(Наименование, Бакет, ОсновныеДанные);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура CLI_S3_УдалитьОбъект(ПараметрыФункции)
|
||||
@ -17639,8 +17639,8 @@
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ИнициализироватьЗагрузкуЧастями", Опции);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИнициализироватьЗагрузкуЧастями", "S3");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат);
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИнициализироватьЗагрузкуЧастями", "S3");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат);
|
||||
|
||||
IDЗагрузки = Результат["response"]["InitiateMultipartUploadResult"]["UploadId"];
|
||||
ОбщийРазмер = Содержимое.Размер();
|
||||
@ -17656,7 +17656,7 @@
|
||||
|
||||
ТекущееЧтение = ЧтениеДанных.Прочитать(РазмерУчастка);
|
||||
ТекущиеДанные = ТекущееЧтение.ПолучитьДвоичныеДанные();
|
||||
|
||||
|
||||
ИВФ = ПолучитьИмяВременногоФайла();
|
||||
ТекущиеДанные.Записать(ИВФ);
|
||||
|
||||
@ -17664,37 +17664,37 @@
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("name" , Наименование);
|
||||
Опции.Вставить("bucket" , Бакет);
|
||||
Опции.Вставить("basic" , ОсновныеДанные);
|
||||
Опции.Вставить("upload" , IDЗагрузки);
|
||||
Опции.Вставить("part" , НомерЧасти);
|
||||
Опции.Вставить("content", ИВФ);
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ЗагрузитьЧастьОбъекта", Опции);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗагрузитьЧастьОбъекта", "S3");
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("name" , Наименование);
|
||||
Опции.Вставить("bucket" , Бакет);
|
||||
Опции.Вставить("basic" , ОсновныеДанные);
|
||||
Опции.Вставить("upload" , IDЗагрузки);
|
||||
Опции.Вставить("part" , НомерЧасти);
|
||||
Опции.Вставить("content", ИВФ);
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ЗагрузитьЧастьОбъекта", Опции);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗагрузитьЧастьОбъекта", "S3");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат);
|
||||
|
||||
ПрочитаноБайт = ИсходныйПоток.ТекущаяПозиция();
|
||||
МассивТегов.Добавить(Результат["headers"]["Etag"]);
|
||||
|
||||
УдалитьФайлы(ИВФ);
|
||||
УдалитьФайлы(ИВФ);
|
||||
Прервать;
|
||||
|
||||
НомерЧасти = НомерЧасти + 1;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("name" , Наименование);
|
||||
Опции.Вставить("bucket", Бакет);
|
||||
Опции.Вставить("basic" , ОсновныеДанные);
|
||||
Опции.Вставить("upload", IDЗагрузки);
|
||||
Опции.Вставить("tags" , МассивТегов);
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("name" , Наименование);
|
||||
Опции.Вставить("bucket", Бакет);
|
||||
Опции.Вставить("basic" , ОсновныеДанные);
|
||||
Опции.Вставить("upload", IDЗагрузки);
|
||||
Опции.Вставить("tags" , МассивТегов);
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ЗавершитьЗагрузкуЧастями", Опции);
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ЗавершитьЗагрузкуЧастями", Опции);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗавершитьЗагрузкуЧастями", "S3");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат);
|
||||
|
@ -2040,9 +2040,9 @@
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьОбщийМодуль(Знач Имя)
|
||||
|
||||
|
||||
Модуль = Вычислить(Имя);
|
||||
|
||||
|
||||
Возврат Модуль;
|
||||
КонецФункции
|
||||
|
||||
|
@ -790,31 +790,31 @@
|
||||
|
||||
Функция ПолучитьТелоЗапроса(Знач Запрос) Экспорт
|
||||
|
||||
ИФТ = Запрос.ПолучитьИмяФайлаТела();
|
||||
Тело = Неопределено;
|
||||
|
||||
Если ЗначениеЗаполнено(ИФТ) Тогда
|
||||
|
||||
ФайлТела = Новый Файл(ИФТ);
|
||||
|
||||
Если Не ФайлТела.Существует() Тогда
|
||||
ВызватьИсключение "Для тела запроса установлен несуществующий файл";
|
||||
Иначе
|
||||
Тело = Новый ДвоичныеДанные(ИФТ);
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
|
||||
Тело = Запрос.ПолучитьТелоКакДвоичныеДанные();
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если Тело = Неопределено Тогда
|
||||
Тело = ПолучитьДвоичныеДанныеИзСтроки("");
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Тело;
|
||||
|
||||
ИФТ = Запрос.ПолучитьИмяФайлаТела();
|
||||
Тело = Неопределено;
|
||||
|
||||
Если ЗначениеЗаполнено(ИФТ) Тогда
|
||||
|
||||
ФайлТела = Новый Файл(ИФТ);
|
||||
|
||||
Если Не ФайлТела.Существует() Тогда
|
||||
ВызватьИсключение "Для тела запроса установлен несуществующий файл";
|
||||
Иначе
|
||||
Тело = Новый ДвоичныеДанные(ИФТ);
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
|
||||
Тело = Запрос.ПолучитьТелоКакДвоичныеДанные();
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если Тело = Неопределено Тогда
|
||||
Тело = ПолучитьДвоичныеДанныеИзСтроки("");
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Тело;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ЗначениеВМассив(Значение) Экспорт
|
||||
|
@ -790,31 +790,31 @@
|
||||
|
||||
Функция ПолучитьТелоЗапроса(Знач Запрос) Экспорт
|
||||
|
||||
ИФТ = Запрос.ПолучитьИмяФайлаТела();
|
||||
Тело = Неопределено;
|
||||
|
||||
Если ЗначениеЗаполнено(ИФТ) Тогда
|
||||
|
||||
ФайлТела = Новый Файл(ИФТ);
|
||||
|
||||
Если Не ФайлТела.Существует() Тогда
|
||||
ВызватьИсключение "Для тела запроса установлен несуществующий файл";
|
||||
Иначе
|
||||
Тело = Новый ДвоичныеДанные(ИФТ);
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
|
||||
Тело = Запрос.ПолучитьТелоКакДвоичныеДанные();
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если Тело = Неопределено Тогда
|
||||
Тело = ПолучитьДвоичныеДанныеИзСтроки("");
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Тело;
|
||||
|
||||
ИФТ = Запрос.ПолучитьИмяФайлаТела();
|
||||
Тело = Неопределено;
|
||||
|
||||
Если ЗначениеЗаполнено(ИФТ) Тогда
|
||||
|
||||
ФайлТела = Новый Файл(ИФТ);
|
||||
|
||||
Если Не ФайлТела.Существует() Тогда
|
||||
ВызватьИсключение "Для тела запроса установлен несуществующий файл";
|
||||
Иначе
|
||||
Тело = Новый ДвоичныеДанные(ИФТ);
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
|
||||
Тело = Запрос.ПолучитьТелоКакДвоичныеДанные();
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если Тело = Неопределено Тогда
|
||||
Тело = ПолучитьДвоичныеДанныеИзСтроки("");
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Тело;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ЗначениеВМассив(Значение) Экспорт
|
||||
|
@ -15090,13 +15090,13 @@
|
||||
|
||||
Результат = OPI_S3.ЗагрузитьОбъектЦеликом(Наименование, Бакет, Содержимое, ОсновныеДанные);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗагрузитьОбъектЦеликом", "S3");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат);
|
||||
|
||||
OPI_S3.УдалитьОбъект(Наименование, Бакет, ОсновныеДанные);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗагрузитьОбъектЦеликом", "S3");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат);
|
||||
|
||||
OPI_S3.УдалитьОбъект(Наименование, Бакет, ОсновныеДанные);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура S3_УдалитьОбъект(ПараметрыФункции)
|
||||
|
@ -17284,13 +17284,13 @@
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ЗагрузитьОбъект", Опции);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗагрузитьОбъектЦеликом", "S3");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат);
|
||||
|
||||
OPI_S3.УдалитьОбъект(Наименование, Бакет, ОсновныеДанные);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗагрузитьОбъектЦеликом", "S3");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат);
|
||||
|
||||
OPI_S3.УдалитьОбъект(Наименование, Бакет, ОсновныеДанные);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура CLI_S3_УдалитьОбъект(ПараметрыФункции)
|
||||
@ -17639,8 +17639,8 @@
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ИнициализироватьЗагрузкуЧастями", Опции);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИнициализироватьЗагрузкуЧастями", "S3");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат);
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИнициализироватьЗагрузкуЧастями", "S3");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат);
|
||||
|
||||
IDЗагрузки = Результат["response"]["InitiateMultipartUploadResult"]["UploadId"];
|
||||
ОбщийРазмер = Содержимое.Размер();
|
||||
@ -17656,7 +17656,7 @@
|
||||
|
||||
ТекущееЧтение = ЧтениеДанных.Прочитать(РазмерУчастка);
|
||||
ТекущиеДанные = ТекущееЧтение.ПолучитьДвоичныеДанные();
|
||||
|
||||
|
||||
ИВФ = ПолучитьИмяВременногоФайла();
|
||||
ТекущиеДанные.Записать(ИВФ);
|
||||
|
||||
@ -17664,37 +17664,37 @@
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("name" , Наименование);
|
||||
Опции.Вставить("bucket" , Бакет);
|
||||
Опции.Вставить("basic" , ОсновныеДанные);
|
||||
Опции.Вставить("upload" , IDЗагрузки);
|
||||
Опции.Вставить("part" , НомерЧасти);
|
||||
Опции.Вставить("content", ИВФ);
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ЗагрузитьЧастьОбъекта", Опции);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗагрузитьЧастьОбъекта", "S3");
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("name" , Наименование);
|
||||
Опции.Вставить("bucket" , Бакет);
|
||||
Опции.Вставить("basic" , ОсновныеДанные);
|
||||
Опции.Вставить("upload" , IDЗагрузки);
|
||||
Опции.Вставить("part" , НомерЧасти);
|
||||
Опции.Вставить("content", ИВФ);
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ЗагрузитьЧастьОбъекта", Опции);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗагрузитьЧастьОбъекта", "S3");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат);
|
||||
|
||||
ПрочитаноБайт = ИсходныйПоток.ТекущаяПозиция();
|
||||
МассивТегов.Добавить(Результат["headers"]["Etag"]);
|
||||
|
||||
УдалитьФайлы(ИВФ);
|
||||
УдалитьФайлы(ИВФ);
|
||||
Прервать;
|
||||
|
||||
НомерЧасти = НомерЧасти + 1;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("name" , Наименование);
|
||||
Опции.Вставить("bucket", Бакет);
|
||||
Опции.Вставить("basic" , ОсновныеДанные);
|
||||
Опции.Вставить("upload", IDЗагрузки);
|
||||
Опции.Вставить("tags" , МассивТегов);
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("name" , Наименование);
|
||||
Опции.Вставить("bucket", Бакет);
|
||||
Опции.Вставить("basic" , ОсновныеДанные);
|
||||
Опции.Вставить("upload", IDЗагрузки);
|
||||
Опции.Вставить("tags" , МассивТегов);
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ЗавершитьЗагрузкуЧастями", Опции);
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ЗавершитьЗагрузкуЧастями", Опции);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗавершитьЗагрузкуЧастями", "S3");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_S3Успех(Результат);
|
||||
|
Loading…
x
Reference in New Issue
Block a user