Работа с FTP как с локальной папкой. CurlFtpFS

Как установить

В пример буду приводить набирающую обороты Ubuntu, как систему для простых пользователей.

Набираем в консоли от имени суперпользователя:

apt-get install curlftpfs

Теперь нужно создать папку, куда будем монтировать FTP-хранилища. Предлагаю использовать /media, в этом случае они будут сразу отображаться в наутилусе:

mkdir /media/ftp

Чтобы не делать все операции от суперпользователя, добавим текущего юзера в группу fuse и установим нужные права на целевой каталог:

adduser имя_пользователя fuse

chgrp fuse /media/ftp

chmod g+w /media/ftp

 

Как использовать

curlftpfs ftp://[пользователь]:[пароль]@имя_сервера /media/ftp [опции]

или

curlftpfs имя_сервера /media/ftp -o user=пользователь:пароль [другие_опции]

мне второй вариант нравится больше.

Настраиваем кодировки

Не забываем, что многие сервера создаются для виндуз-пользователей. Встроенный в винду FTP-клиент знает только одну кодировку: windows-1251, и именно в этой кодировке подобный FTP-сервер будет передавать имена файлов.

Соответственно, так как у нас utf8, вместо русских имён мы увидим абракадабру. И наоборот: при создании файла с русским именем, абракадабру увидят виндуз-пользователи.

Чтобы этого избежать, дописываем в опции соединения: codepage=windows-1251 (указываем какая кодировка используется на сервере) и iocharset=utf8 (указываем какая кодировка у нас, можно не писать).

curlftpfs имя_сервера /media/ftp -o user=пользователь:пароль,codepage=windows-1251[,iocharset=utf8]

Или делаем то же, но используя модуль iconv, что правильнее:

curlftpfs имя_сервера /media/ftp -o user=пользователь:пароль,modules=iconv,from_code=CP1251,to_code=UTF8

Другие настройки

Лирическое отступление.

Мой местный интернет-провайдер держит анонимный FTP-сервер. Его поддерживают замечательные администраторы, он до сих пор не понимает маленькую букву «я» в названиях файлов. Но дело даже не в этом.

Скорость заливки/скачивания на этом сервере не ограничена. Но! При попытке открыть несколько FTP-сессий, скорость на несколько минут падает до нескольких килобайт в секунду. С учётом, что на дворе 21 век, 2010 год, параллельные вычисления и нанотехнологии, считаю такой подход замечательным.

Чтобы забыть про администраторов нетрадиционной сексуальной ориентации, можно использовать опцию -s при подключении curlftpfs. Она отключит многопоточные операции.

curlftpfs имя_сервера /media/ftp -o modules=iconv,from_code=CP1251,to_code=UTF8 -s

Автомонтирование при запуске

Для автомонтирования ресурса при каждом запуске, добавим следующую строчку в файл /etc/rc.local:

sudo -u пользователь curlftpfs [параметры_подключения]

где пользователь – имя локального пользователя, от которого запустится curlftpfs.

Отмонтируем

fusermount -u /media/ftp

От имени текущего пользователя. Или, если хочется поизвращаться, то от имени суперпользователя:

umount /media/ftp

Ссылки

http://wiki.enchtex.info/tools/console/curlftpfs

После монтирования выполните команду df, о ужас – по умолчанию в таблице монтирования

имя файловой системы присваивается следующего вида:

curlftpfs#ftp://user:pass@host

Опция fsname=поможет скрыть эти данные.

Логин и пароль засвечиваются только в том случае, если писать их в URI для подключения.

Если передать их опциями (-o user=login:password), то всё будет хорошо.


http://www.opennet.ru/tips/info/2090.shtml

Автоматизировать ввод пароля можно через стандартный ~/.netrc файл (man netrc):

machine ftp.test.ru

login логин

password пароль


http://tuxologia.blog.ru/tag/curlftpfs

Автомонтирование через fstab:

curlftpfs#ftp.host.com /mnt/host fuse rw,uid=500,user,noauto 0 0

Совет: Перед изменением /etc/fstab — проведите монтирование вручную, после чего выполните команду mount (или cat /etc/mtab).

Источник и назначение монтирования надо будет внести в fstab согласно этому выводу, с точностью до символа.

Полезные опции:

noauto — не монтировать при загрузке;

uid=# — идентификатор владельца (кому нужно заходить на подмонтированный ресурс);

_netdev — указание, что ресурс сетевой.


http://www.ubuntueasy.com/prilozhenija/montirovanie-ftp-razdelov-ispolzuja-curlftpfs

http://ubuntuforums.org/showthread.php?t=441126