-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Is it possible to achieve a link based FS? #3
Comments
In Nephele, all file operations are done with streams that respect backpressure, so if there is for example slow network and the client can only receive data at a certain rate, the buffer will stop filling from the filesystem once it reaches the I'm really surprised if that's not also how Also, Nephele does indeed support range requests, which will let you load specific parts of a file. So, for example you should be able to jump around in a video that's being streamed from a Nephele server to VLC or your browser. One thing to note, is that if you want Nephele to be able to handle big transfers, you need to set the |
@pexch Apologies for the delayed response. Hopefully that helps. |
I looked at the That nephele/packages/nephele/src/Methods/GET_HEAD.ts Lines 233 to 237 in a9881ee
They need to pause their source stream (reading from the disk) and only resume it once their target stream (sending across the network) drains. They're also going to need to rewrite this code: Which reads each range into memory before building and sending the response all at once. Another thing I noticed is that they're reading the entire file when they get a range request, which can hurt performance and wastes disk IO. For every request they create a full read stream: They can improve performance by creating a ranged read stream for each range. Like this:
Otherwise, if, say, you just wanted to watch the end credits of a 24GB 4K movie file, you'd have to read through all 24GB, which would be like 30 seconds at SATA speeds, every time you tried to seek during the stream. |
I'm currently using webdav-server but I'm facing problems when passing a direct dl link connected to a file. If the file is too big, the stream is loaded into memory and it breaks. I assume the issue lies in the fact that its trying to load a huge amount of data into memory. My biggest problem is media files such as MP4 etc.
Just wondering if there's a way to only load parts of what the user requested, if its a media file for example?
And is this doable in nephele?
The text was updated successfully, but these errors were encountered: