|
319 | 319 | </div> |
320 | 320 | </div> |
321 | 321 |
|
| 322 | + <div class="config-item"> |
| 323 | + <div class="config-item-info"> |
| 324 | + <div class="config-item-label"> |
| 325 | + <i class="bi bi-memory"></i> |
| 326 | + Memory-Based Split |
| 327 | + </div> |
| 328 | + <div class="config-item-description"> |
| 329 | + Split large files in memory instead of creating temporary files on disk. |
| 330 | + This is more efficient for systems with limited disk space. |
| 331 | + <span class="badge bg-info ms-2">Requires Split Size > 0</span> |
| 332 | + </div> |
| 333 | + </div> |
| 334 | + <div class="config-item-control"> |
| 335 | + <InputCheckbox @bind-Value="Model!.EnableMemorySplitUpload" class="form-check-input config-switch" disabled="@(Model.SplitSize == 0)" /> |
| 336 | + </div> |
| 337 | + </div> |
| 338 | + |
| 339 | + @if (Model.EnableMemorySplitUpload && Model.SplitSize > 0) |
| 340 | + { |
| 341 | + <div class="config-item"> |
| 342 | + <div class="config-item-info"> |
| 343 | + <div class="config-item-label"> |
| 344 | + <i class="bi bi-sliders2"></i> |
| 345 | + Memory Chunk Size |
| 346 | + </div> |
| 347 | + <div class="config-item-description"> |
| 348 | + Size of each chunk when splitting in memory (1-4 GB). Must be ≤ Split Size. |
| 349 | + </div> |
| 350 | + </div> |
| 351 | + <div class="config-item-control"> |
| 352 | + <div class="config-range-group"> |
| 353 | + <RangeInput TValue="int" @bind-Value="Model.MemorySplitSizeGB" Min="1" Max="@GetMaxMemorySplitSize()" style="width: 120px;" /> |
| 354 | + <span class="config-range-value">@Model.MemorySplitSizeGB GB</span> |
| 355 | + </div> |
| 356 | + </div> |
| 357 | + </div> |
| 358 | + } |
| 359 | + |
322 | 360 | <div class="config-item"> |
323 | 361 | <div class="config-item-info"> |
324 | 362 | <div class="config-item-label"> |
|
1116 | 1154 | return $"{size:0.##} {sizes[order]}"; |
1117 | 1155 | } |
1118 | 1156 |
|
| 1157 | + private int GetMaxMemorySplitSize() |
| 1158 | + { |
| 1159 | + // MemorySplitSizeGB must be <= SplitSize and <= 4 |
| 1160 | + return Math.Min(Model?.SplitSize ?? 4, 4); |
| 1161 | + } |
| 1162 | + |
1119 | 1163 | public void Dispose() |
1120 | 1164 | { |
1121 | 1165 | _disposed = true; |
|
0 commit comments