[PR #956] [MERGED] feat(server): multi archive downloads #8843

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

📋 Pull Request Information

Original PR: https://github.com/immich-app/immich/pull/956
Author: @jrasm91
Created: 11/11/2022
Status: Merged
Merged: 11/15/2022
Merged by: @alextran1502

Base: mainHead: feature/download-library


📝 Commits (10+)

  • f8b4226 refactor(server): download archive
  • 7328344 feat: include all asset types in dto
  • 2e790df feat(server): multi archive downloads
  • 8ad74d9 feat(web): multi archive album downloads
  • e480194 chore: regenerate open-api
  • 39488bc refactor: use existing repository method
  • 83a2d81 fix: test
  • 96c1f9c fix: any dto
  • 5555e5f fix: test
  • 8c35bd9 feat: up limit to 20GB per archive file

📊 Changes

26 files changed (+542 additions, -155 deletions)

View changed files

📝 mobile/openapi/README.md (+1 -0)
📝 mobile/openapi/doc/AlbumApi.md (+4 -2)
📝 mobile/openapi/doc/AssetApi.md (+48 -0)
📝 mobile/openapi/doc/AssetCountByUserIdResponseDto.md (+5 -2)
📝 mobile/openapi/lib/api/album_api.dart (+11 -3)
📝 mobile/openapi/lib/api/asset_api.dart (+51 -0)
📝 mobile/openapi/lib/model/asset_count_by_user_id_response_dto.dart (+29 -5)
📝 server/apps/immich/src/api-v1/album/album.controller.ts (+16 -3)
📝 server/apps/immich/src/api-v1/album/album.module.ts (+5 -1)
📝 server/apps/immich/src/api-v1/album/album.service.spec.ts (+7 -1)
📝 server/apps/immich/src/api-v1/album/album.service.ts (+7 -39)
📝 server/apps/immich/src/api-v1/asset/asset-repository.ts (+22 -11)
📝 server/apps/immich/src/api-v1/asset/asset.controller.ts (+20 -0)
📝 server/apps/immich/src/api-v1/asset/asset.module.ts (+2 -0)
📝 server/apps/immich/src/api-v1/asset/asset.service.spec.ts (+11 -2)
📝 server/apps/immich/src/api-v1/asset/asset.service.ts (+10 -0)
server/apps/immich/src/api-v1/asset/dto/download-library.dto.ts (+14 -0)
📝 server/apps/immich/src/api-v1/asset/response-dto/asset-count-by-user-id-response.dto.ts (+10 -6)
📝 server/apps/immich/src/api-v1/server-info/server-info.service.ts (+6 -32)
server/apps/immich/src/constants/download.constant.ts (+3 -0)

...and 6 more files

📄 Description

Proof of concept for downloading multiple archives when the zip reaches a certain size. This is detected with new http headers in the download response and subsequent downloads are started with a skip offset query parameter. This is current enabled for the album download in the web client and there is a server endpoint for a library download that is configured to support this, although there is no way to current call it in the UI.


🔄 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/956 **Author:** [@jrasm91](https://github.com/jrasm91) **Created:** 11/11/2022 **Status:** ✅ Merged **Merged:** 11/15/2022 **Merged by:** [@alextran1502](https://github.com/alextran1502) **Base:** `main` ← **Head:** `feature/download-library` --- ### 📝 Commits (10+) - [`f8b4226`](https://github.com/immich-app/immich/commit/f8b42260218626490a348df55195aa4b6ab38b89) refactor(server): download archive - [`7328344`](https://github.com/immich-app/immich/commit/7328344a770747a6165fae3029c9072f03df522a) feat: include all asset types in dto - [`2e790df`](https://github.com/immich-app/immich/commit/2e790dff2c02c147c999d68db780ffeb0a84875d) feat(server): multi archive downloads - [`8ad74d9`](https://github.com/immich-app/immich/commit/8ad74d9671e69acc70c3620b82c823684559cb4c) feat(web): multi archive album downloads - [`e480194`](https://github.com/immich-app/immich/commit/e480194058a52159a756fa6d7015a348368a863a) chore: regenerate open-api - [`39488bc`](https://github.com/immich-app/immich/commit/39488bcbc1e163f1cf581455d7a31fe7eb57bf2e) refactor: use existing repository method - [`83a2d81`](https://github.com/immich-app/immich/commit/83a2d815ccd0475914b7d85cd0db4188c2f159cb) fix: test - [`96c1f9c`](https://github.com/immich-app/immich/commit/96c1f9c8dde5a041f6a484180d03ef120d87e667) fix: any dto - [`5555e5f`](https://github.com/immich-app/immich/commit/5555e5f5bf742fb184d4b652cf0d5a9e5fc17091) fix: test - [`8c35bd9`](https://github.com/immich-app/immich/commit/8c35bd9060283334fda945dc95363f198e68246a) feat: up limit to 20GB per archive file ### 📊 Changes **26 files changed** (+542 additions, -155 deletions) <details> <summary>View changed files</summary> 📝 `mobile/openapi/README.md` (+1 -0) 📝 `mobile/openapi/doc/AlbumApi.md` (+4 -2) 📝 `mobile/openapi/doc/AssetApi.md` (+48 -0) 📝 `mobile/openapi/doc/AssetCountByUserIdResponseDto.md` (+5 -2) 📝 `mobile/openapi/lib/api/album_api.dart` (+11 -3) 📝 `mobile/openapi/lib/api/asset_api.dart` (+51 -0) 📝 `mobile/openapi/lib/model/asset_count_by_user_id_response_dto.dart` (+29 -5) 📝 `server/apps/immich/src/api-v1/album/album.controller.ts` (+16 -3) 📝 `server/apps/immich/src/api-v1/album/album.module.ts` (+5 -1) 📝 `server/apps/immich/src/api-v1/album/album.service.spec.ts` (+7 -1) 📝 `server/apps/immich/src/api-v1/album/album.service.ts` (+7 -39) 📝 `server/apps/immich/src/api-v1/asset/asset-repository.ts` (+22 -11) 📝 `server/apps/immich/src/api-v1/asset/asset.controller.ts` (+20 -0) 📝 `server/apps/immich/src/api-v1/asset/asset.module.ts` (+2 -0) 📝 `server/apps/immich/src/api-v1/asset/asset.service.spec.ts` (+11 -2) 📝 `server/apps/immich/src/api-v1/asset/asset.service.ts` (+10 -0) ➕ `server/apps/immich/src/api-v1/asset/dto/download-library.dto.ts` (+14 -0) 📝 `server/apps/immich/src/api-v1/asset/response-dto/asset-count-by-user-id-response.dto.ts` (+10 -6) 📝 `server/apps/immich/src/api-v1/server-info/server-info.service.ts` (+6 -32) ➕ `server/apps/immich/src/constants/download.constant.ts` (+3 -0) _...and 6 more files_ </details> ### 📄 Description Proof of concept for downloading multiple archives when the zip reaches a certain size. This is detected with new http headers in the download response and subsequent downloads are started with a `skip` offset query parameter. This is current enabled for the album download in the web client and there is a server endpoint for a library download that is configured to support this, although there is no way to current call it in the UI. --- <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 13:54:12 +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#8843