mirror of
				https://github.com/immich-app/immich.git
				synced 2025-10-31 10:37:11 -04:00 
			
		
		
		
	fix(server): library folder missing on new install (#2597)
This commit is contained in:
		
							parent
							
								
									ffe397247e
								
							
						
					
					
						commit
						caba462703
					
				| @ -6,6 +6,7 @@ import { | ||||
|   MACHINE_LEARNING_ENABLED, | ||||
|   SearchService, | ||||
|   SERVER_VERSION, | ||||
|   StorageService, | ||||
| } from '@app/domain'; | ||||
| import { RedisIoAdapter } from '@app/infra'; | ||||
| import { Logger } from '@nestjs/common'; | ||||
| @ -72,6 +73,8 @@ async function bootstrap() { | ||||
|     customSiteTitle: 'Immich API Documentation', | ||||
|   }); | ||||
| 
 | ||||
|   app.get(StorageService).init(); | ||||
| 
 | ||||
|   await app.listen(serverPort, () => { | ||||
|     if (process.env.NODE_ENV == 'development') { | ||||
|       // Generate API Documentation only in development mode
 | ||||
|  | ||||
| @ -15,6 +15,13 @@ describe(StorageService.name, () => { | ||||
|     expect(sut).toBeDefined(); | ||||
|   }); | ||||
| 
 | ||||
|   describe('init', () => { | ||||
|     it('should create the library folder on initialization', () => { | ||||
|       sut.init(); | ||||
|       expect(storageMock.mkdirSync).toHaveBeenCalledWith('upload/library'); | ||||
|     }); | ||||
|   }); | ||||
| 
 | ||||
|   describe('handleDeleteFiles', () => { | ||||
|     it('should handle null values', async () => { | ||||
|       await sut.handleDeleteFiles({ files: [undefined, null] }); | ||||
|  | ||||
| @ -1,13 +1,20 @@ | ||||
| import { Inject, Injectable, Logger } from '@nestjs/common'; | ||||
| import { IDeleteFilesJob } from '../job'; | ||||
| import { StorageCore, StorageFolder } from './storage.core'; | ||||
| import { IStorageRepository } from './storage.repository'; | ||||
| 
 | ||||
| @Injectable() | ||||
| export class StorageService { | ||||
|   private logger = new Logger(StorageService.name); | ||||
|   private storageCore = new StorageCore(); | ||||
| 
 | ||||
|   constructor(@Inject(IStorageRepository) private storageRepository: IStorageRepository) {} | ||||
| 
 | ||||
|   init() { | ||||
|     const libraryBase = this.storageCore.getBaseFolder(StorageFolder.LIBRARY); | ||||
|     this.storageRepository.mkdirSync(libraryBase); | ||||
|   } | ||||
| 
 | ||||
|   async handleDeleteFiles(job: IDeleteFilesJob) { | ||||
|     const { files } = job; | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user