Можно ли использовать однострочную команду в Python для создания простого ftp-сервера? Я хотел бы иметь возможность сделать это как быстрый и временный способ передачи файлов в Linux без необходимости установки ftp-сервера. Желательно использовать встроенные библиотеки Python, чтобы не было ничего лишнего для установки.
python
ftp
ftp-server
Zio
источник
источник
-o Ciphers=arcfour
, т. Е.sshfs $REMOTEHOST:$DIRECTORY $MOUNTPOINT -o Ciphers=arcfour
Копируйте, перемещайте, переименовывайте и управляйте файлами в файловой системе. sshfs также доступен для Mac OSX.Ответы:
Обязательный пример Twisted :
И, наверное, полезно:
источник
pip install -U twisted
что прямо не упоминается на связанном сайте.Проверьте pyftpdlib от Джампаоло Родола. Это один из лучших ftp-серверов для Python. Он используется в Google Chrome (их браузере) и bazaar (системе контроля версий). Это наиболее полная реализация на Python для RFC-959 (также известная как спецификация реализации FTP-сервера).
Из командной строки:
В качестве альтернативы my_server.py:
На сайте есть другие примеры, если вам нужно что-то посложнее.
Чтобы получить список параметров командной строки:
Обратите внимание: если вы хотите переопределить или использовать стандартный порт ftp, вам потребуются права администратора (например, sudo).
источник
>>> from pyftpdlib import ftpserver
:pyftpdlib\ftpserver.py:54: DeprecationWarning: pyftpdlib.ftpserver module is deprecated
Почему бы вам вместо этого не использовать однострочный HTTP- сервер?
будет обслуживать содержимое текущего рабочего каталога через HTTP через порт 8000.
Если вы используете Python 3, вам следует вместо этого написать
См. Документацию модуля SimpleHTTPServer для 2.x и документацию http.server для 3.x.
Кстати, в обоих случаях параметр порта не обязателен.
источник
Все ответы, приведенные выше, предполагали, что ваш дистрибутив Python будет иметь некоторые сторонние библиотеки для достижения цели «однострочный python ftpd», но это не тот случай, о котором спрашивал @zio. Кроме того, SimpleHTTPServer использует веб-браузер для загрузки файлов, это недостаточно быстро.
Python не может сделать даемон сама по себе, но вы можете использовать Netcat ,
nc
:nc
По сути, это встроенный инструмент из любых UNIX-подобных систем (даже встроенных систем), поэтому он идеально подходит для « быстрого и временного способа передачи файлов ».Шаг 1, на стороне приемника запустите:
это будет прослушивать порт 12345, ожидая данных.
Шаг 2 на стороне отправителя:
Вы также можете поместить
pv
в середину, чтобы отслеживать ход переноса:После завершения передачи обе стороны
nc
будут автоматически завершены, и работа будет выполнена.источник
tar
иnc
доступны. Что, если это окна?Для пользователей pyftpdlib. Я нашел это на сайте pyftpdlib. Это создает анонимный ftp с доступом для записи в вашу файловую систему, поэтому используйте его с должной осторожностью. Для большей безопасности доступно больше функций, так что просто посмотрите:
Может быть полезно для тех, кто пытался использовать устаревший метод, описанный выше.
sudo python -m pyftpdlib.ftpserver
источник
sudo
если установишь в венвpip3 install pyftpdlib
иpython3 -m pyftpdlib -w
. работал для меня как шарм.Более простым решением будет использование пользовательской библиотеки pyftpd. Эта библиотека позволяет вращать FTP-сервер Python в одну строку. По умолчанию он не устанавливается, но мы можем установить его с помощью простой команды apt
теперь из каталога, который вы хотите обслуживать, просто запустите модуль pythod
источник
Установить:
Тогда код:
Погрузитесь глубже:
http://twistedmatrix.com/documents/current/core/examples/
источник
Я не знаю об однострочном FTP-сервере, но если вы знаете
Он будет запускать HTTP-сервер на 0.0.0.0:8000, обслуживая файлы из текущего каталога. Если вы ищете способ быстро получить файлы из окна Linux с помощью веб-браузера, вы не сможете его превзойти.
источник
источник