[PR #7192] [MERGED] feat(cli): concurrent upload #11530

Closed
opened 2026-02-05 14:41:13 +03:00 by OVERLORD · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/immich-app/immich/pull/7192
Author: @mertalev
Created: 2/19/2024
Status: Merged
Merged: 2/20/2024
Merged by: @jrasm91

Base: mainHead: feat/cli-concurrent-upload


📝 Commits (10+)

📊 Changes

5 files changed (+394 additions, -120 deletions)

View changed files

📝 cli/package-lock.json (+44 -0)
📝 cli/package.json (+4 -0)
📝 cli/src/commands/upload.command.ts (+273 -103)
📝 cli/src/index.ts (+5 -0)
📝 e2e/src/cli/specs/upload.e2e-spec.ts (+68 -17)

📄 Description

Description

When doing bulk uploads, I noticed that uploading through web was much faster than through the CLI (specifically when the upload component is minimized to avoid rendering slowdown). The former is able to upload files concurrently, while the latter currently does everything sequentially.

This PR addresses this limitation by refactoring the upload command to be "batch"-oriented - it runs a given number of promises at a time, finishing one step for all files before moving to the next step. Besides faster uploads, a benefit of this change is that it visualizes the progress of each step. In particular, this means users can now see how many of their assets were duplicates.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/immich-app/immich/pull/7192 **Author:** [@mertalev](https://github.com/mertalev) **Created:** 2/19/2024 **Status:** ✅ Merged **Merged:** 2/20/2024 **Merged by:** [@jrasm91](https://github.com/jrasm91) **Base:** `main` ← **Head:** `feat/cli-concurrent-upload` --- ### 📝 Commits (10+) - [`d5720c9`](https://github.com/immich-app/immich/commit/d5720c9ae7b7b2d6d7f55b15db720ec7b038c376) concurrent cli upload - [`1de7c30`](https://github.com/immich-app/immich/commit/1de7c30b69aa07861f2f78f09427cac3a8cc3895) added concurrency flag, progress bar refinements - [`093f0c7`](https://github.com/immich-app/immich/commit/093f0c76956c858d84e28e22071a7cc30048bb4d) no data property 🦀 - [`47b17dc`](https://github.com/immich-app/immich/commit/47b17dc5cf001c4d6709830e704cf65ff33b5e89) use lodash-es - [`be8cd9f`](https://github.com/immich-app/immich/commit/be8cd9f6f125b49e74558f127300fe9484fb29f4) rebase - [`0c802e3`](https://github.com/immich-app/immich/commit/0c802e365ef79db4a8a9e3e4362aedea481b67b4) linting - [`bf04f4b`](https://github.com/immich-app/immich/commit/bf04f4b694c4de69fa02d31a1a701838f35b46be) typing - [`a924cc6`](https://github.com/immich-app/immich/commit/a924cc6582e8411e167cd34015b9a6debf206434) album bug fixes - [`6aee32e`](https://github.com/immich-app/immich/commit/6aee32e13c433565a52efda0129e63711e9ed8e8) dev dependency for lodash typing - [`a10ef80`](https://github.com/immich-app/immich/commit/a10ef800320c61ef053a54d0b86affc6b61d4c58) fixed not deleting assets if album isn't specified ### 📊 Changes **5 files changed** (+394 additions, -120 deletions) <details> <summary>View changed files</summary> 📝 `cli/package-lock.json` (+44 -0) 📝 `cli/package.json` (+4 -0) 📝 `cli/src/commands/upload.command.ts` (+273 -103) 📝 `cli/src/index.ts` (+5 -0) 📝 `e2e/src/cli/specs/upload.e2e-spec.ts` (+68 -17) </details> ### 📄 Description ### Description When doing bulk uploads, I noticed that uploading through web was much faster than through the CLI (specifically when the upload component is minimized to avoid rendering slowdown). The former is able to upload files concurrently, while the latter currently does everything sequentially. This PR addresses this limitation by refactoring the upload command to be "batch"-oriented - it runs a given number of promises at a time, finishing one step for all files before moving to the next step. Besides faster uploads, a benefit of this change is that it visualizes the progress of each step. In particular, this means users can now see how many of their assets were duplicates. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
OVERLORD added the pull-request label 2026-02-05 14:41:13 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#11530