Ftp mounting doesn't seem to work
from JackGreenEarth@lemm.ee to linux@lemmy.ml on 19 Mar 11:11
https://lemm.ee/post/58872408

Hey,

So I’ve been connecting to an ftp server which I worked on with apps like GNOME Builder, and backed up the contents of with Pika Backup, connecting to it via the GNOME Files application, Nautilus, from the Network tab.

Recently, apps stopped being able to read files I opened with the file picker hosted on the ftp server, and after a lot of debugging I realised that was because Nautilus had for some reason switched from mounting the files under /run/user/1000/gvfs/ftp_address to the more abstract path ftp://ftp_address, under the virtual directory computer://. Now apps can’t read those files as they are not mounted under an actual path.

I couldn’t find a way in Nautilus, FileZilla, or Dolphin to mount the ftp server files under a specified path /mnt/ftp_username, or even to put it back to the unwieldy but still working path it was under before, using a GUI.

I was recommended by an LLM assistant to use the curlftpfs command, but even with several variations of a command such as the following

sudo curlftpfs -v -o "uid=$UID,gid=$GID" ftp://username:correct%20password@ftp_address /mnt/ftp_username

it always gave the same error

Error setting curl: 

The curl command worked by itself, just not with curlftpfs, but with just curl I can’t mount it.

I’m not sure what else to try, could I have some advice please?

Edit: it seems the error message was a bug with a combination of using curlftpfs and curl v8.9.1

A commenter also suggested using rclone or gio, as apparently curlftpfs is unmaintained and that’s why it’s not working.

#linux

threaded - newest

Strit@lemmy.linuxuserspace.show on 19 Mar 11:30 next collapse

Have you tried without the ftp:// part. eg. curlftpfs ftp-user:ftp-pass@my-ftp-location.local /mnt/my_ftp/

JackGreenEarth@lemm.ee on 19 Mar 11:34 collapse

I hadn’t, I just did, unfortunately it gives the same error.

a14o@feddit.org on 19 Mar 12:52 next collapse

Error setting curl:

That doesn’t seem like a complete error message to me. Is there any more information? Maybe with the -d (debug) flag?

JackGreenEarth@lemm.ee on 19 Mar 12:55 collapse

I know, right? But even with -d, -v, or -o debug, that’s all I get

a14o@feddit.org on 19 Mar 12:57 collapse

Seems to be a known bug: github.com/curl/curl/discussions/14299

JackGreenEarth@lemm.ee on 19 Mar 13:00 collapse

Hmm, that also says it should have been fixed last year

This bug is fixed in current master, set to be released in curl 8.10.0 on September 11, 2024.

a14o@feddit.org on 19 Mar 13:24 collapse

Fixed in curl, but not in a curlftpfs, apparently. Look at the comments on the accepted answer.

JackGreenEarth@lemm.ee on 19 Mar 14:14 collapse

Idk how to downgrade it, it doesn’t seem to be working

aarvi@fedora:~$ sudo dnf dg curl-8.8.0
Updating and loading repositories:
Repositories loaded.
Failed to resolve the transaction:
No match for argument: curl-8.8.0
You can try to add to command line:
  --skip-unavailable to skip unavailable packages
aarvi@fedora:~$ 
a14o@feddit.org on 19 Mar 15:03 collapse

I don’t think downgrading the curl library is promising here. curlftpfs seems to be unmaintained. I recommend looking for alternatives or alternative workflows.

NegativeLookBehind@lemmy.world on 19 Mar 12:58 next collapse

Just as a test, don’t sudo, change to root and try it. Or, don’t sudo or change to root at all, and see if that will work.

JackGreenEarth@lemm.ee on 19 Mar 13:05 collapse

Hmm, I did try that. It didn’t work, still same error.

2xsaiko@discuss.tchncs.de on 19 Mar 14:59 next collapse

Try “gio mount ftp://…”

JackGreenEarth@lemm.ee on 19 Mar 15:10 collapse

aarvi@fedora:~$ gio mount ftp://jack101:correct%20password@oncilla.mythic-beasts.com /mnt/jack101
gio: file:///mnt/jack101: volume doesn’t implement mount
gio: ftp://jack101@oncilla.mythic-beasts.com/: Location is already mounted

I think it is already mounted, but under the annoying computer:// virtual directory, not where I want it, and what does it mean by ‘volume doesn’t implement mount’?

2xsaiko@discuss.tchncs.de on 19 Mar 15:25 collapse

Is there really nothing in /run/user/1000/gvfs? Try gio mount -l. Maybe unmount and remount.

It’s unlikely that it doesn’t actually mount, from the man page:

Mounting refers to the traditional concept of arranging multiple file systems and devices in a single tree, rooted at /.

The first error is because you have a separate argument at the end which is a local path. gio mount takes a list of locations to mount and not a mount point.

JackGreenEarth@lemm.ee on 19 Mar 15:31 collapse

Yeah, I tried without the mount point too, but I think that’s just the same as what Nautilus does. There is nothing under /run/user/1000/gvfs

eldavi@lemmy.ml on 19 Mar 15:41 collapse

in your shoes: i would switch to different connection method to see if it’s curl that’s causing your problem. ssh w sshfs would be the easiest switch since it doesn’t required you to modify the ftp server, other than to install the ssh server.

if it’s connects, then you know that curl is your culprit and you can further narrow down the problem; or just stick w ssh.

if it doesn’t connect, then you know that curl is probably okay and that your problem is elsewhere.

JackGreenEarth@lemm.ee on 19 Mar 15:59 collapse

Sorry, I should have mentioned in the post: curl worked by itself, just not with curlftpfs. Someone else suggested using rclone, so I’m going to try that