humble-cli
humble-cli copied to clipboard
humble-cli cannot read from remote directories in Linux
First off, let me just say thank you for making this application. I've been wanting to sync down my Humble collection, and this seems like the perfect application to do it.
Since my Humble collection is too large to store on my local machine, I would like to download it to my NAS. How I am attempting to download the bundles at the moment is to run the Linux version of the application locally after setting the current working directory to a remote SMB share.
A sanitized version of my shell script to accomplish this goal looks like this:
humble_cli_exe=humble-cli
download_dir=/run/user/1000/gvfs/smb-share:server=server.local,share=downloads/humble_bundle
pushd $download_dir
$humble_cli_exe list --field key | xargs -n 1 $humble_cli_exe download
popd
The downloading/writing seems to work great. However, on subsequent runs of the application, humble-cli seems to be unable to read the downloaded directories, emitting the following error: "Illegal seek (os error 29)". This causes the application to not be able to finish downloading partially downloaded bundles (among other issues). Stack Overflow seems to indicate this may be an issue with socket streams, but to be honest, I don't know Rust well enough to investigate.
Is this a valid way to use the application? Do you have any tips as to how I might fix or work around this issue?
Thanks again for this awesome app and for any advice you have!
Hi @vingenuity,
Thank you for your kind words! I am glad you find it useful.
I tried to emulate the same process locally on a Linux machine with a SMB share. I could interrupt the download and resume later on without any problem. Though I must say the download speed is less than ideal, which seems to be because of Linux + SMB performance when it comes to writing small files.
When you get the error from humble-cli, can you try to see if other apps can write to the share folder?
For example, does this command succeed when humble-cli cannot write?
dd if=/dev/zero of=/run/user/1000/gvfs/smb-share/output.bin bs=350k count=2k && sync'
(Assuming your shared folder is mounted at /run/user/1000/gvfs/smb-share/)
Sorry for the delay in responding! Been a busy couple of weeks.
I thought a user change on the Samba connection had fixed the issue, but it turned out that the path was being redirected locally. Even using a user with full permission access to the share seems to have no effect on the error code
dd with your given command does seem to be working via the same path, both reads and writes, which is interesting.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.