Windows: подключение FTP в качестве диска

Решил немного усовершенствовать свой powershell скрипт, который реализует охрану при помощи wifi-камеры. Решил записывать на ftp-сервер видео-поток с камеры, когда дома никого нет. То есть кроме оповещения по email (когда вдруг что-то зашевелилось в кадре), видео будет постоянно записываться.

Для этого мне понадобилось подключить ftp-сервер, так, чтобы он стал доступен из командной строки как диск или папка.

Подключение FTP стандартными средствами Windows

В Windows можно стандартными средствами подключить ftp как сетевой диск, но такой сетевой диск будет работать только из проводника (explorer), в командной строке он будет не доступен.

Опишу, как стандартными средствами подключить ftp в качестве сетевого диска.

Жмем правой кнопкой мышки на иконке "Мой компьютер" и выбираем в контекстном меню пункт "Подключить сетевой диск...". В открывшемся окне жмем на "Подключение к веб-сайту, на котором вы можете хранить документы и изображения":

Подключение к веб-сайту, на котором вы можете хранить документы и изображения

В следующих двух окнах жмем по кнопка "Далее" и указываем адрес ftp-сервера:

Указываем адрес ftp-сервера

 

Снова жмем кнопку далее, снимаем галочку возле "Анонимный вход" и указываем ftp-логин, жмем кнопки далее, готово.

В конце у Вас запросит пароль, вводим его и ставим галочку "Сохранить пароль", чтобы каждый раз его не вводить.

Теперь в проводнике можно заходить на ftp-сервер как на обычный сетевой диск, без каких-либо ftp-клиентов. Но такой вариант подключения ftp в качестве сетевого диска мне не подошел, так как не могу к нему обращаться через командную строку.

Подключение FTP через FTPUSE

Мою проблему решила утилита ftpuse - ferrobackup.com/ftpuse

После установки утилиты чтобы подключить сетевой диск нужно ввести команду (покажу на своем примере):

ftpuse U: ftp.elims.org.ua ТутПечатаемСвойПароль /USER:elimS

В работе программы есть два нюанса:

  • на подключенном диске всегда будет отображаться 512 МБ свободного места, не зависимо от того, сколько там его осталось. Но мне  это не мешает.
  • если закрыть окно командной строки из которого запускался FTPUSE, то диск размонтируется. Мне это не мешает, так консоль у меня всегда запущена. Если же окно все-таки хочется скрыть, то запускаем FTPUSE вот такой командой:
powershell -WindowStyle Hidden ftpuse u: ftp.elims.org.ua ТутПечатаемСвойПароль /user:elimS

Ну и краткая информация о параметрах FTPUSE:

FTPUSE devicename [ftphostname[/remotepath] [password]]
         [/USER:username]
         [/NOPASSIVE]
         [/OWNERACCESSONLY]
         [/PORT:portnumber]
         [/DEBUG]
         [[/DELETE]] 

  • devicename - имя подключаемого/отключаемого диска
  • ftphostname - адрес FTP сервера
  • remotepath - имя удаленной папки, которая будет использоваться родительская папка создаваемого диска
  • password - пароль для подключения к FTP серверу
  • /USER - логин на FTP сервере
  • /NOPASSIVE - активное соединение с FTP сервером (active mode)
  • /OWNERACCESSONLY - делает созданный диск доступным только из приложения запустившем FTPUSE
  • /PORT - номер порта FTP-сервера. Порт 21 используется по умолчанию.
  • /DEBUG - отладка.
  • /DELETE - удаление смонтированого диска.

Далее скриншот подключенных дисков, тот, который з буквой "U" подключен через ftpuse и доступен из командной строки как обычный локальный диск:

FTPUSE как локальный диск

 

 

Понравилось? =) Поделись с друзьями:

Обсуждение записи “Windows: подключение FTP в качестве диска”

  1. Юрий says:

    После монтирования диска все кирилические символы в названиях файлов превращаются в абракадабру. Нет ли способа это исправить?

  2. Владимир Демянович (elims.org.ua) says:

    Честно говоря не знаю, я отказался от данной практики, так как со временем понял что подключение фтп в качестве диска не стабильно работает.

  3. Taz says:

    Бесполезная программа, сколько не бадался, мапить ftp как диск не хочет и все. Через проводник все работает, но нужен способ для использования в скриптах.

  4. Rus says:

    Таз, всё отлично маппится и работает.
    значит у вас косяки в командной строке с параметрами

Обсудить