diff --git a/src/Shared/Configuration/Monai.Deploy.WorkflowManager.Configuration.csproj b/src/Shared/Configuration/Monai.Deploy.WorkflowManager.Configuration.csproj
index af55ab2c3..558e1367e 100644
--- a/src/Shared/Configuration/Monai.Deploy.WorkflowManager.Configuration.csproj
+++ b/src/Shared/Configuration/Monai.Deploy.WorkflowManager.Configuration.csproj
@@ -32,7 +32,7 @@
-
+
@@ -42,8 +42,8 @@
-
-
+
+
diff --git a/src/Shared/Configuration/packages.lock.json b/src/Shared/Configuration/packages.lock.json
index 7ff8aceed..1a2c97b4b 100644
--- a/src/Shared/Configuration/packages.lock.json
+++ b/src/Shared/Configuration/packages.lock.json
@@ -51,7 +51,7 @@
"type": "Direct",
"requested": "[0.1.4, )",
"resolved": "0.1.4",
- "contentHash": "Y0+QmoUZUw79C7LKhKHNmi5bgeMiPSNjPQzEz4vnagJaEFtdugzQ90ofYMMMAMeOr0FjUgxyPBgvJ1ZG/r76Dw==",
+ "contentHash": "/fFC/OoidveajNeFj6r6aTGLNMY+Xl7iR/CjZortArBtAxzMgzTRzmjGltWn7Jae8+/Vv8w+pKgT0TZbK9JvxA==",
"dependencies": {
"Ardalis.GuardClauses": "4.0.1",
"Microsoft.Extensions.Configuration": "6.0.1",
@@ -65,16 +65,16 @@
},
"Monai.Deploy.Storage": {
"type": "Direct",
- "requested": "[0.2.5, )",
- "resolved": "0.2.5",
- "contentHash": "EkctSwMUPm+omInxEGAbPPXz6dyd8nY4BAzrdGKt9MHsL1OesFXsgUXsmlCx+ltauohiiTSfjgd9eeVkUUD8MA==",
+ "requested": "[0.2.6-rc0005, )",
+ "resolved": "0.2.6-rc0005",
+ "contentHash": "XB6bXf4Z524d/45Rn1t+36tEK3O4oMdC3pa0W63LrifvidbI6jM9FKN8Lxzh/FXV5OBkfjFv5fhIskAlJCv75g==",
"dependencies": {
"AWSSDK.SecurityToken": "3.7.1.190",
"Ardalis.GuardClauses": "4.0.1",
"Microsoft.Extensions.Configuration": "6.0.1",
"Microsoft.Extensions.Diagnostics.HealthChecks": "6.0.8",
"Microsoft.Extensions.Logging": "6.0.0",
- "Monai.Deploy.Storage.S3Policy": "0.2.5",
+ "Monai.Deploy.Storage.S3Policy": "0.2.6-rc0005",
"System.IO.Abstractions": "17.1.1"
}
},
@@ -229,8 +229,8 @@
},
"Monai.Deploy.Storage.S3Policy": {
"type": "Transitive",
- "resolved": "0.2.5",
- "contentHash": "wtvoeDf7MsuUE48Sggs6FYNOkLFUfQ5mPZer75jb63b9SKQjK2S34IdS8SnHVovNes1xhWInTB9YT2HUNgtzig==",
+ "resolved": "0.2.6-rc0005",
+ "contentHash": "W5UC+iR9H/CKOvib5tr1vOjvGr08E1BjRHvD4GZivxmaVt4KsWwl0jd3dKeHRLyGQO06CLVGqsz6d3zw0ew+LA==",
"dependencies": {
"Ardalis.GuardClauses": "4.0.1",
"Newtonsoft.Json": "13.0.1"
diff --git a/src/TaskManager/API/Monai.Deploy.WorkflowManager.TaskManager.API.csproj b/src/TaskManager/API/Monai.Deploy.WorkflowManager.TaskManager.API.csproj
index 30f164a78..4d4d2dafd 100644
--- a/src/TaskManager/API/Monai.Deploy.WorkflowManager.TaskManager.API.csproj
+++ b/src/TaskManager/API/Monai.Deploy.WorkflowManager.TaskManager.API.csproj
@@ -1,41 +1,41 @@
-
-
-
-
-
- net6.0
- enable
- enable
-
-
-
- true
- true
- ..\..\.sonarlint\project-monai_monai-deploy-workflow-managercsharp.ruleset
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+ net6.0
+ enable
+ enable
+
+
+
+ true
+ true
+ ..\..\.sonarlint\project-monai_monai-deploy-workflow-managercsharp.ruleset
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/TaskManager/API/packages.lock.json b/src/TaskManager/API/packages.lock.json
index 3a26a2191..9d21ea521 100644
--- a/src/TaskManager/API/packages.lock.json
+++ b/src/TaskManager/API/packages.lock.json
@@ -6,7 +6,7 @@
"type": "Direct",
"requested": "[0.1.4, )",
"resolved": "0.1.4",
- "contentHash": "Y0+QmoUZUw79C7LKhKHNmi5bgeMiPSNjPQzEz4vnagJaEFtdugzQ90ofYMMMAMeOr0FjUgxyPBgvJ1ZG/r76Dw==",
+ "contentHash": "/fFC/OoidveajNeFj6r6aTGLNMY+Xl7iR/CjZortArBtAxzMgzTRzmjGltWn7Jae8+/Vv8w+pKgT0TZbK9JvxA==",
"dependencies": {
"Ardalis.GuardClauses": "4.0.1",
"Microsoft.Extensions.Configuration": "6.0.1",
@@ -20,16 +20,16 @@
},
"Monai.Deploy.Storage": {
"type": "Direct",
- "requested": "[0.2.5, )",
- "resolved": "0.2.5",
- "contentHash": "EkctSwMUPm+omInxEGAbPPXz6dyd8nY4BAzrdGKt9MHsL1OesFXsgUXsmlCx+ltauohiiTSfjgd9eeVkUUD8MA==",
+ "requested": "[0.2.6-rc0005, )",
+ "resolved": "0.2.6-rc0005",
+ "contentHash": "XB6bXf4Z524d/45Rn1t+36tEK3O4oMdC3pa0W63LrifvidbI6jM9FKN8Lxzh/FXV5OBkfjFv5fhIskAlJCv75g==",
"dependencies": {
"AWSSDK.SecurityToken": "3.7.1.190",
"Ardalis.GuardClauses": "4.0.1",
"Microsoft.Extensions.Configuration": "6.0.1",
"Microsoft.Extensions.Diagnostics.HealthChecks": "6.0.8",
"Microsoft.Extensions.Logging": "6.0.0",
- "Monai.Deploy.Storage.S3Policy": "0.2.5",
+ "Monai.Deploy.Storage.S3Policy": "0.2.6-rc0005",
"System.IO.Abstractions": "17.1.1"
}
},
@@ -169,8 +169,8 @@
},
"Monai.Deploy.Storage.S3Policy": {
"type": "Transitive",
- "resolved": "0.2.5",
- "contentHash": "wtvoeDf7MsuUE48Sggs6FYNOkLFUfQ5mPZer75jb63b9SKQjK2S34IdS8SnHVovNes1xhWInTB9YT2HUNgtzig==",
+ "resolved": "0.2.6-rc0005",
+ "contentHash": "W5UC+iR9H/CKOvib5tr1vOjvGr08E1BjRHvD4GZivxmaVt4KsWwl0jd3dKeHRLyGQO06CLVGqsz6d3zw0ew+LA==",
"dependencies": {
"Ardalis.GuardClauses": "4.0.1",
"Newtonsoft.Json": "13.0.1"
diff --git a/src/TaskManager/Database/packages.lock.json b/src/TaskManager/Database/packages.lock.json
index 90ca96565..7236bfde8 100644
--- a/src/TaskManager/Database/packages.lock.json
+++ b/src/TaskManager/Database/packages.lock.json
@@ -175,7 +175,7 @@
"Monai.Deploy.Messaging": {
"type": "Transitive",
"resolved": "0.1.4",
- "contentHash": "Y0+QmoUZUw79C7LKhKHNmi5bgeMiPSNjPQzEz4vnagJaEFtdugzQ90ofYMMMAMeOr0FjUgxyPBgvJ1ZG/r76Dw==",
+ "contentHash": "/fFC/OoidveajNeFj6r6aTGLNMY+Xl7iR/CjZortArBtAxzMgzTRzmjGltWn7Jae8+/Vv8w+pKgT0TZbK9JvxA==",
"dependencies": {
"Ardalis.GuardClauses": "4.0.1",
"Microsoft.Extensions.Configuration": "6.0.1",
@@ -189,22 +189,22 @@
},
"Monai.Deploy.Storage": {
"type": "Transitive",
- "resolved": "0.2.5",
- "contentHash": "EkctSwMUPm+omInxEGAbPPXz6dyd8nY4BAzrdGKt9MHsL1OesFXsgUXsmlCx+ltauohiiTSfjgd9eeVkUUD8MA==",
+ "resolved": "0.2.6-rc0005",
+ "contentHash": "XB6bXf4Z524d/45Rn1t+36tEK3O4oMdC3pa0W63LrifvidbI6jM9FKN8Lxzh/FXV5OBkfjFv5fhIskAlJCv75g==",
"dependencies": {
"AWSSDK.SecurityToken": "3.7.1.190",
"Ardalis.GuardClauses": "4.0.1",
"Microsoft.Extensions.Configuration": "6.0.1",
"Microsoft.Extensions.Diagnostics.HealthChecks": "6.0.8",
"Microsoft.Extensions.Logging": "6.0.0",
- "Monai.Deploy.Storage.S3Policy": "0.2.5",
+ "Monai.Deploy.Storage.S3Policy": "0.2.6-rc0005",
"System.IO.Abstractions": "17.1.1"
}
},
"Monai.Deploy.Storage.S3Policy": {
"type": "Transitive",
- "resolved": "0.2.5",
- "contentHash": "wtvoeDf7MsuUE48Sggs6FYNOkLFUfQ5mPZer75jb63b9SKQjK2S34IdS8SnHVovNes1xhWInTB9YT2HUNgtzig==",
+ "resolved": "0.2.6-rc0005",
+ "contentHash": "W5UC+iR9H/CKOvib5tr1vOjvGr08E1BjRHvD4GZivxmaVt4KsWwl0jd3dKeHRLyGQO06CLVGqsz6d3zw0ew+LA==",
"dependencies": {
"Ardalis.GuardClauses": "4.0.1",
"Newtonsoft.Json": "13.0.1"
@@ -302,7 +302,7 @@
"type": "Project",
"dependencies": {
"Monai.Deploy.Messaging": "[0.1.4, )",
- "Monai.Deploy.Storage": "[0.2.5, )",
+ "Monai.Deploy.Storage": "[0.2.6-rc0005, )",
"MongoDB.Bson": "[2.17.1, )"
}
}
diff --git a/src/TaskManager/Plug-ins/Argo/Monai.Deploy.WorkflowManager.TaskManager.Argo.csproj b/src/TaskManager/Plug-ins/Argo/Monai.Deploy.WorkflowManager.TaskManager.Argo.csproj
index 8e311888f..8422532fd 100644
--- a/src/TaskManager/Plug-ins/Argo/Monai.Deploy.WorkflowManager.TaskManager.Argo.csproj
+++ b/src/TaskManager/Plug-ins/Argo/Monai.Deploy.WorkflowManager.TaskManager.Argo.csproj
@@ -22,8 +22,8 @@
enable
-
-
+
+
@@ -34,7 +34,7 @@
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
diff --git a/src/TaskManager/Plug-ins/Argo/packages.lock.json b/src/TaskManager/Plug-ins/Argo/packages.lock.json
index 6c7c0c266..eda1173cc 100644
--- a/src/TaskManager/Plug-ins/Argo/packages.lock.json
+++ b/src/TaskManager/Plug-ins/Argo/packages.lock.json
@@ -36,7 +36,7 @@
"type": "Direct",
"requested": "[0.1.4, )",
"resolved": "0.1.4",
- "contentHash": "Y0+QmoUZUw79C7LKhKHNmi5bgeMiPSNjPQzEz4vnagJaEFtdugzQ90ofYMMMAMeOr0FjUgxyPBgvJ1ZG/r76Dw==",
+ "contentHash": "/fFC/OoidveajNeFj6r6aTGLNMY+Xl7iR/CjZortArBtAxzMgzTRzmjGltWn7Jae8+/Vv8w+pKgT0TZbK9JvxA==",
"dependencies": {
"Ardalis.GuardClauses": "4.0.1",
"Microsoft.Extensions.Configuration": "6.0.1",
@@ -50,16 +50,16 @@
},
"Monai.Deploy.Storage": {
"type": "Direct",
- "requested": "[0.2.5, )",
- "resolved": "0.2.5",
- "contentHash": "EkctSwMUPm+omInxEGAbPPXz6dyd8nY4BAzrdGKt9MHsL1OesFXsgUXsmlCx+ltauohiiTSfjgd9eeVkUUD8MA==",
+ "requested": "[0.2.6-rc0005, )",
+ "resolved": "0.2.6-rc0005",
+ "contentHash": "XB6bXf4Z524d/45Rn1t+36tEK3O4oMdC3pa0W63LrifvidbI6jM9FKN8Lxzh/FXV5OBkfjFv5fhIskAlJCv75g==",
"dependencies": {
"AWSSDK.SecurityToken": "3.7.1.190",
"Ardalis.GuardClauses": "4.0.1",
"Microsoft.Extensions.Configuration": "6.0.1",
"Microsoft.Extensions.Diagnostics.HealthChecks": "6.0.8",
"Microsoft.Extensions.Logging": "6.0.0",
- "Monai.Deploy.Storage.S3Policy": "0.2.5",
+ "Monai.Deploy.Storage.S3Policy": "0.2.6-rc0005",
"System.IO.Abstractions": "17.1.1"
}
},
@@ -338,8 +338,8 @@
},
"Monai.Deploy.Storage.S3Policy": {
"type": "Transitive",
- "resolved": "0.2.5",
- "contentHash": "wtvoeDf7MsuUE48Sggs6FYNOkLFUfQ5mPZer75jb63b9SKQjK2S34IdS8SnHVovNes1xhWInTB9YT2HUNgtzig==",
+ "resolved": "0.2.6-rc0005",
+ "contentHash": "W5UC+iR9H/CKOvib5tr1vOjvGr08E1BjRHvD4GZivxmaVt4KsWwl0jd3dKeHRLyGQO06CLVGqsz6d3zw0ew+LA==",
"dependencies": {
"Ardalis.GuardClauses": "4.0.1",
"Newtonsoft.Json": "13.0.1"
@@ -558,7 +558,7 @@
"Microsoft.Extensions.Logging": "[6.0.0, )",
"Microsoft.Extensions.Options": "[6.0.0, )",
"Monai.Deploy.Messaging": "[0.1.4, )",
- "Monai.Deploy.Storage": "[0.2.5, )",
+ "Monai.Deploy.Storage": "[0.2.6-rc0005, )",
"Newtonsoft.Json": "[13.0.1, )",
"System.IO.Abstractions": "[17.1.1, )"
}
@@ -567,7 +567,7 @@
"type": "Project",
"dependencies": {
"Monai.Deploy.Messaging": "[0.1.4, )",
- "Monai.Deploy.Storage": "[0.2.5, )",
+ "Monai.Deploy.Storage": "[0.2.6-rc0005, )",
"MongoDB.Bson": "[2.17.1, )"
}
}
diff --git a/src/TaskManager/Plug-ins/Docker/DockerPlugin.cs b/src/TaskManager/Plug-ins/Docker/DockerPlugin.cs
index f1a3461d9..e38e08ac6 100644
--- a/src/TaskManager/Plug-ins/Docker/DockerPlugin.cs
+++ b/src/TaskManager/Plug-ins/Docker/DockerPlugin.cs
@@ -163,7 +163,7 @@ private async Task> SetupInputs(CancellationToken can
SessionToken = input.Credentials?.SessionToken,
};
- var objects = await storageService.ListObjectsWithCredentialsAsync(input.Bucket, credentials, input.RelativeRootPath, true, cancellationToken);
+ var objects = await storageService.ListObjectsAsync(input.Bucket, input.RelativeRootPath, true, cancellationToken);
var id = Guid.NewGuid();
// Host Path of the Directory for this Input File.
@@ -179,21 +179,15 @@ private async Task> SetupInputs(CancellationToken can
foreach (var obj in objects)
{
// Task Manager Container Path of the Input File.
- var inputContainerPath = Path.Combine(payloadContainerPath, id.ToString(), obj.Filename.Replace(input.RelativeRootPath, ""));
+ var inputContainerPath = Path.Combine(payloadContainerPath, id.ToString(), obj.FilePath.Replace(input.RelativeRootPath, ""));
// Task Manager Container Path of the Directory for this Input File.
- var parentPath = Directory.GetParent(inputContainerPath).Parent.FullName;
+ var parentPath = Path.GetDirectoryName(inputContainerPath);
Directory.CreateDirectory(parentPath);
- var stream = await storageService.GetObjectWithCredentialsAsync(input.Bucket, obj.Filename, credentials, cancellationToken);
- var streamWriter = new StreamWriter(inputContainerPath);
- var bufferSize = 1 * 1024 * 1024;
- byte[] buffer = new byte[bufferSize];
-
- while (stream.Read(buffer, 0, bufferSize) != 0)
- {
- streamWriter.Write(buffer);
- }
+ using var stream = await storageService.GetObjectAsync(input.Bucket, obj.FilePath, cancellationToken) as MemoryStream;
+ using var fileStream = new FileStream(inputContainerPath, FileMode.CreateNew, FileAccess.Write);
+ stream!.WriteTo(fileStream);
}
}
diff --git a/src/TaskManager/TaskManager/Logging/Log.cs b/src/TaskManager/TaskManager/Logging/Log.cs
index 427fa44df..c987ff698 100644
--- a/src/TaskManager/TaskManager/Logging/Log.cs
+++ b/src/TaskManager/TaskManager/Logging/Log.cs
@@ -116,5 +116,8 @@ public static partial class Log
[LoggerMessage(EventId = 118, Level = LogLevel.Error, Message = "Error removing storage user account {username}.")]
public static partial void ErrorRemovingStorageUserAccount(this ILogger logger, string username, Exception exception);
+
+ [LoggerMessage(EventId = 119, Level = LogLevel.Debug, Message = "Generating temporary credentials for bucket={bucket}, path={path}.")]
+ public static partial void GenerateTemporaryCredentials(this ILogger logger, string bucket, string path);
}
}
diff --git a/src/TaskManager/TaskManager/Monai.Deploy.WorkflowManager.TaskManager.csproj b/src/TaskManager/TaskManager/Monai.Deploy.WorkflowManager.TaskManager.csproj
index 30443beeb..5126a54de 100644
--- a/src/TaskManager/TaskManager/Monai.Deploy.WorkflowManager.TaskManager.csproj
+++ b/src/TaskManager/TaskManager/Monai.Deploy.WorkflowManager.TaskManager.csproj
@@ -1,4 +1,4 @@
-