@@ -4,7 +4,6 @@ import { WebDavUtils } from '../../utils/webdav.utils';
44import { DriveFileService } from '../../services/drive/drive-file.service' ;
55import { DriveDatabaseManager } from '../../services/database/drive-database-manager.service' ;
66import { NetworkFacade } from '../../services/network/network-facade.service' ;
7- import { UploadService } from '../../services/network/upload.service' ;
87import { DownloadService } from '../../services/network/download.service' ;
98import { CryptoService } from '../../services/crypto.service' ;
109import { AuthService } from '../../services/auth.service' ;
@@ -18,7 +17,6 @@ export class GETRequestHandler implements WebDavMethodHandler {
1817 private readonly dependencies : {
1918 driveFileService : DriveFileService ;
2019 driveDatabaseManager : DriveDatabaseManager ;
21- uploadService : UploadService ;
2220 downloadService : DownloadService ;
2321 cryptoService : CryptoService ;
2422 authService : AuthService ;
@@ -31,18 +29,19 @@ export class GETRequestHandler implements WebDavMethodHandler {
3129 const resource = await WebDavUtils . getRequestedResource ( req ) ;
3230
3331 if ( resource . name . startsWith ( '._' ) ) throw new NotFoundError ( 'File not found' ) ;
32+ if ( resource . type === 'folder' ) throw new NotFoundError ( 'Folders cannot be listed with GET. Use PROPFIND instead.' ) ;
3433
35- webdavLogger . info ( `GET request received for file at ${ resource . url } ` ) ;
34+ webdavLogger . info ( `[ GET] Request received for ${ resource . type } at ${ resource . url } ` ) ;
3635 const driveFile = ( await WebDavUtils . getAndSearchItemFromResource ( {
3736 resource,
3837 driveDatabaseManager,
3938 driveFileService,
4039 } ) ) as DriveFileItem ;
4140
42- webdavLogger . info ( `✅ Found Drive File with uuid ${ driveFile . uuid } ` ) ;
41+ webdavLogger . info ( `[GET] [ ${ driveFile . uuid } ] Found Drive File ` ) ;
4342
4443 const { user } = await authService . getAuthDetails ( ) ;
45- webdavLogger . info ( '✅ Network ready for download' ) ;
44+ webdavLogger . info ( `[GET] [ ${ driveFile . uuid } ] Network ready for download` ) ;
4645
4746 const writable = new WritableStream ( {
4847 write ( chunk ) {
@@ -60,36 +59,25 @@ export class GETRequestHandler implements WebDavMethodHandler {
6059 } ) ;
6160 let contentLength = driveFile . size ;
6261 if ( rangeOptions ) {
63- webdavLogger . info ( '✅ Range request received:' , { rangeOptions } ) ;
62+ webdavLogger . info ( `[GET] [ ${ driveFile . uuid } ] Range request received:` , { rangeOptions } ) ;
6463 contentLength = rangeOptions . rangeSize ;
6564 }
6665
67- res . set ( 'Content-Type' , 'application/octet-stream' ) ;
68- res . set ( 'Content-length' , contentLength . toString ( ) ) ;
66+ res . header ( 'Content-Type' , 'application/octet-stream' ) ;
67+ res . header ( 'Content-length' , contentLength . toString ( ) ) ;
6968
70- let lastLoggedProgress = 0 ;
7169 const [ executeDownload ] = await networkFacade . downloadToStream (
7270 driveFile . bucket ,
7371 user . mnemonic ,
7472 driveFile . fileId ,
7573 writable ,
7674 rangeOptions ,
77- {
78- progressCallback : ( progress ) => {
79- const percentage = Math . floor ( 100 * progress ) ;
80-
81- if ( percentage >= lastLoggedProgress + 1 ) {
82- lastLoggedProgress = percentage ;
83- webdavLogger . info ( `Download progress for file ${ resource . name } : ${ percentage } %` ) ;
84- }
85- } ,
86- } ,
8775 ) ;
88- webdavLogger . info ( '✅ Download prepared, executing...' ) ;
76+ webdavLogger . info ( `[GET] [ ${ driveFile . uuid } ] Download prepared, executing...` ) ;
8977 res . status ( 200 ) ;
9078
9179 await executeDownload ;
9280
93- webdavLogger . info ( ' ✅ Download ready, replying to client' ) ;
81+ webdavLogger . info ( `[GET] [ ${ driveFile . uuid } ] ✅ Download ready, replying to client` ) ;
9482 } ;
9583}
0 commit comments