Skip to content

Conversation

xuang7
Copy link
Contributor

@xuang7 xuang7 commented Aug 4, 2025

Purpose

This PR addresses issue #3610 by enabling users to configure multipart upload parameters dynamically. Previously, all file uploads used fixed settings that might not be optimal for different network conditions and file sizes. Users can now adjust chunk size and concurrent upload count to optimize upload and balance upload speed vs. memory usage based on their specific requirements.

Changes

  • dataset-detailed.component.ts/scss/html:
    • Introduced an advanced settings panel under the file uploader, values will be revert if page refreshed.
    • Added two number inputs with minimum values of 1 MB (chunk size) and 1 part (concurrency).
    • Included tooltips explain the memory ↔ speed trade-off for each control.
  • datasetservice.ts: Extended multipartUpload() signature to accept partSize and concurrencyLimit.
  • gui-config.service.mock.ts/gui-config.ts: Switched default chunk‐size from bytes to MB/count.
  • gui.conf/GuiConfig.scala/ConfigResource.scala: Switched default chunk‐size from bytes to MB/count.
  • app.module.ts: Imported the NzInputNumberModule to support the new controls.

Demonstration

Advanced Settings panel under the file upload section (Default):

Expanded Collapsed
default default1
Chunk size Concurrent chunk
tooltip tooltip1

After adjustment:
changed

Performance Comparison:
sample

@xuang7 xuang7 marked this pull request as ready for review August 4, 2025 03:23
@xuang7 xuang7 marked this pull request as draft August 4, 2025 03:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant