Это возможно как в Linux, так и в Windows.
Как это сделать в виндах - расскажу чуть попозже, а в Linux нам поможет небольшая программа CurlFtpFS.
CurlFtpFS - утилита для монтирования удалённых FTP-хранилищ в локальную файловую систему. После монтирования мы можем оперировать с данными на сервере как с локальными, а все рутиные операции обмена файлами по протоколу FTP за нас будет делать утилита. Звучит неплохо, да?
Как установить
В пример буду приводить набирающую обороты 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
Другие настройки
Чтобы забыть про администраторов нетрадиционной сексуальной ориентации, можно использовать опцию -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=<любой текст> поможет скрыть эти данные.
или, чтобы скрыть имя и пароль из таблицы df -h:
curlftpfs#192.162.101.72 /mnt/ftp fuse _netdev,rw,allow_other,auto,user=name:pass 0 0