RMount is a lot more robust than existing libraries and methods to create a remote connection to a cloud server. For example you would want to use Python to connect to a cloud storage such as S3 or a remote server via SSH and treat it like a local file-system.
Note
It has been a pain to write this library given how many things can go wrong when treating a cloud storage as a local file-system. For example, connection drops, or writing of large files can make the system unresponsive and lead to loss of data. The library is supposed to take care of such cases but it is always subject to unforeseen failures.
or pip install rmount
Don’t take it bad, but strong statements require strong evidence. Your code is basically a wrapper around the libraries that do the hard work, with a bunch of
subprocess
calls.No information is provided on realistic user cases and scenarios, other than a bunch of “trust me”, so to speak.
You should do a better job than this if you want to convince users of those well-established tools to consider yours and not to think you’re another coder wannabe.
Why is this preferable over something like FSspec https://filesystem-spec.readthedocs.io/en/latest/ ?
RMount is a lot more robust than existing libraries
…
The library is supposed to take care of such cases but it is always subject to unforeseen failures.
¯\(ツ)/¯
Sarcasm aside, what makes this more robust than the various other libraries/tools in this space?
Primarily they do not monitor the status or health of the connection to the remote file-system. You can end-up writing GBs of data thinking everything is working fine only to realize upon program termination all your data was lost.
There are no python alternatives that work, while the best method of doing that is using
rclone
which is written ingo
(which is the back-end also used forrmount
). However the only way to troubleshoot broken connection or issues is by going through the logs of the library and a lot of manual effort (which is whatrmount
primarily does for you out-of-the box)Part of the reason of all the issues mentioned is that rclone uses Fuse file-system and as such from several layers of abstraction (Fuse-> Go-> RClone-> Python) it becomes more difficult to diagnose and deal with failures. That is what
rmount
tries to do.What benefits would this have over something like s3fs? I’ve never had issues with that, but it doesn’t cover all the use cases you outlined. There are robust alternatives for SSH as well that have connection error monitoring to avoid the situation you outlined.
Yep, I mean using aws cli is good enough. A simple aws s3 cp copy_from copy_to is a command that should get 99% of people moving along.
I normally do that as well, but some people prefer to mount s3 as a file system like mentioned in this post. I’ve had to use it for work when my boss required it. I’d personally use the CLI for everything.