Skip to content

feat: switch single-file dataset downloads to use browser native downloads - #3621

Merged
aicam merged 8 commits into
apache:masterfrom
madisonmlin:enable-dataset-single-file-download-progress-bar
Aug 11, 2025
Merged

feat: switch single-file dataset downloads to use browser native downloads#3621
aicam merged 8 commits into
apache:masterfrom
madisonmlin:enable-dataset-single-file-download-progress-bar

Conversation

@madisonmlin

Copy link
Copy Markdown
Contributor

Purpose

This pull request partially addresses issue #3404 by changing the download method of single-file dataset downloads to use browser native downloads. Using the browser to handle downloads enables the browser's file download UI, which includes a progress bar when downloading larger files.

Previously, we would generate a pre-signed URL for the file via LakeFS API and download it as a Blob. Now, we generate a pre-signed URL for the file via S3 Gateway API, which offers additional flexibility, and click on the URL to trigger browser native download.

Changes

  • added method to generate pre-signed URL via S3 Gateway API, with additional flexibility to specify file name and type
  • updated frontend and backend to directly click on a pre-signed URL generated via the new method for single file dataset downloads
  • removed success and error notifications for single file dataset downloads (the success and error of a file download cannot be obtained when using browser native download)
  • updated unit tests to verify new download method

Changed Files:

  • file-service/src/main/scala/edu/uci/ics/texera/service/resource/DatasetResource.scala
  • file-service/src/main/scala/edu/uci/ics/texera/service/util/S3StorageClient.scala
  • gui/src/app/dashboard/component/user/user-dataset/user-dataset-explorer/dataset-detail.component.ts
  • gui/src/app/dashboard/service/user/dataset/dataset.service.ts
  • gui/src/app/dashboard/service/user/download/download.service.spec.ts
  • gui/src/app/dashboard/service/user/download/download.service.ts

@madisonmlin
madisonmlin force-pushed the enable-dataset-single-file-download-progress-bar branch from 0664c36 to 60ac481 Compare August 4, 2025 21:53
@madisonmlin
madisonmlin marked this pull request as ready for review August 4, 2025 21:53
@aicam
aicam self-requested a review August 4, 2025 23:13
@aicam aicam linked an issue Aug 4, 2025 that may be closed by this pull request
@aicam
aicam enabled auto-merge (squash) August 11, 2025 02:29
@aicam
aicam merged commit f2214a1 into apache:master Aug 11, 2025
10 checks passed
madisonmlin added a commit to madisonmlin/texera that referenced this pull request Aug 18, 2025
aicam pushed a commit that referenced this pull request Aug 18, 2025
…ser native downloads (#3621)" (#3669)

This PR reverts commit f2214a1 due to
issues with the single-file dataset download for Texera when hosted on
Kubernetes.
SarahAsad23 pushed a commit to madisonmlin/texera that referenced this pull request May 20, 2026
…loads (apache#3621)

### Purpose ### 
This pull request partially addresses issue apache#3404 by changing the
download method of single-file dataset downloads to use browser native
downloads. Using the browser to handle downloads enables the browser's
file download UI, which includes a progress bar when downloading larger
files.

Previously, we would generate a pre-signed URL for the file via LakeFS
API and download it as a Blob. Now, we generate a pre-signed URL for the
file via S3 Gateway API, which offers additional flexibility, and click
on the URL to trigger browser native download.

### Changes ### 
- added method to generate pre-signed URL via S3 Gateway API, with
additional flexibility to specify file name and type
- updated frontend and backend to directly click on a pre-signed URL
generated via the new method for single file dataset downloads
- removed success and error notifications for single file dataset
downloads (the success and error of a file download cannot be obtained
when using browser native download)
- updated unit tests to verify new download method

Changed Files:
-
file-service/src/main/scala/edu/uci/ics/texera/service/resource/DatasetResource.scala
-
file-service/src/main/scala/edu/uci/ics/texera/service/util/S3StorageClient.scala
-
gui/src/app/dashboard/component/user/user-dataset/user-dataset-explorer/dataset-detail.component.ts
- gui/src/app/dashboard/service/user/dataset/dataset.service.ts
- gui/src/app/dashboard/service/user/download/download.service.spec.ts
- gui/src/app/dashboard/service/user/download/download.service.ts
SarahAsad23 pushed a commit to madisonmlin/texera that referenced this pull request May 20, 2026
…ser native downloads (apache#3621)" (apache#3669)

This PR reverts commit 12177c8 due to
issues with the single-file dataset download for Texera when hosted on
Kubernetes.
yangzhang75 pushed a commit to yangzhang75/texera that referenced this pull request Jun 22, 2026
…loads (apache#3621)

### Purpose ### 
This pull request partially addresses issue apache#3404 by changing the
download method of single-file dataset downloads to use browser native
downloads. Using the browser to handle downloads enables the browser's
file download UI, which includes a progress bar when downloading larger
files.

Previously, we would generate a pre-signed URL for the file via LakeFS
API and download it as a Blob. Now, we generate a pre-signed URL for the
file via S3 Gateway API, which offers additional flexibility, and click
on the URL to trigger browser native download.

### Changes ### 
- added method to generate pre-signed URL via S3 Gateway API, with
additional flexibility to specify file name and type
- updated frontend and backend to directly click on a pre-signed URL
generated via the new method for single file dataset downloads
- removed success and error notifications for single file dataset
downloads (the success and error of a file download cannot be obtained
when using browser native download)
- updated unit tests to verify new download method

Changed Files:
-
file-service/src/main/scala/edu/uci/ics/texera/service/resource/DatasetResource.scala
-
file-service/src/main/scala/edu/uci/ics/texera/service/util/S3StorageClient.scala
-
gui/src/app/dashboard/component/user/user-dataset/user-dataset-explorer/dataset-detail.component.ts
- gui/src/app/dashboard/service/user/dataset/dataset.service.ts
- gui/src/app/dashboard/service/user/download/download.service.spec.ts
- gui/src/app/dashboard/service/user/download/download.service.ts
yangzhang75 pushed a commit to yangzhang75/texera that referenced this pull request Jun 22, 2026
…ser native downloads (apache#3621)" (apache#3669)

This PR reverts commit f2214a1 due to
issues with the single-file dataset download for Texera when hosted on
Kubernetes.
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.

Add Progress Bar for Dataset/Result Download

2 participants