JackSlateur / curlftpfs

A FTP filesystem based on cURL and FUSE
GNU General Public License v2.0
16 stars 13 forks source link

Note

This is not the official project, which can be found there: http://curlftpfs.sourceforge.net/ I just added some code the correctly handle filename which contains url-special chars (actually, just # and %) by url-encoding them : % -> %25

-> %23

Using that, curl will not translate them, and will target the correct filename.

CurlFtpFS

CurlFtpFS is a filesystem for acessing ftp hosts based on FUSE and libcurl. It automatically reconnects if the server times out.

My motivation to start this project was to learn how to program using Curl (http://curl.haxx.se) and Fuse (http://fuse.sourceforge.net). I also wanted to maintain my website (http://www.golaberto.com.br) using the tools that I was used to, like cd, mv, cp and vim.

As the FTP protocol is not very feature rich, this filesystem does not fulfill every constraint of a real filesystem, but it should be usable for simple tasks like copying and editing files.

Requirements

glib-2.0 libcurl >= 7.17.0

Compilation and Installation

./configure make make install

Usage

curlftpfs

ex.: curlftpfs ftp://ftp.sunet.se/ sunet/

Debugging

curlftpfs -f -v -o debug,ftpfs_debug=3

(runs the curlftpfs in foreground and shows libcurl verbose debug output)

Known Problems

1) Several GUI application (gedit, leafpad,...) use open(O_RDWR) + seek mode for saving files which cannot be supported by the FTP protocol. Therefore saving files might throw an error. Hopefully future kernels will provide special errno's to make it easier to deal with less capable file-systems.

2) There seems to be a bug in libcurl 7.18 which sometimes causes problems reading files. Should be fixed in libcurl >= 7.18.2

http://sourceforge.net/tracker/index.php?func=detail&aid=1951588&group_id=976&atid=100976