Я создал сервер Python со следующим кодом в командной строке.

python -m http.server 

Вы можете найти подробную информацию о том, как создать сервер на веб-сайте Mozilla. Используя этот сервер, любой компьютер в моей сети может использовать веб-сайты на нем с IP-адресом 192.168.xxx.xxx:8000 . Когда я пытаюсь подключиться к моему серверу с помощью Putty и / или FTP, он возвращает unknown host . Как мне подключить FTP или Putty к моему серверу? Я сделал сервер с моей Raspberry Pi, и я мог использовать SSH на Putty для модификации сервера.

1 ответ1

1

Насколько мне известно, http.server Python не поддерживает FTP.

Хотя в Python есть библиотека FTP, по сути это клиентская библиотека, предназначенная для того, чтобы помочь вашим сценариям взаимодействовать с существующими серверами FTP. К сожалению, в Python нет «встроенного» FTP-сервера.

Учитывая это, у вас фактически есть два варианта: использовать стороннюю библиотеку или кодировать решение для передачи файлов самостоятельно. http.server поддерживает CGI с python -m http.server --cgi , поэтому теоретически возможно использовать этот механизм для передачи данных.

Для простой сторонней библиотеки FTP-сервера вы можете заглянуть в pyftpdlibдокументацией, в том числе с базовой страницей учебника ).

Что касается Putty, если вы хотите использовать SSH на ПК, то, насколько мне известно, в Windows нет собственного SSH-сервера. Google может помочь в этом, но для домашнего использования MobaSSH или FreeSSHd могут быть приемлемыми для вас решениями.


Недавно мне стало известно, что в достаточно обновленных версиях Windows 10 с установленной подсистемой Windows для Linux (WSL) могут быть некоторые опции для собственного SSH. Однако я не могу высказать предположение о том, будет ли этого достаточно для ваших нужд или нет.


Использование pyftpdlib

Если вы решили использовать pyftpdlib, вы можете установить его с помощью pip:

pip install pyftpdlib

Для простого сервера командной строки (похожего на http.server) вы можете использовать следующее:

python -m pyftpdlib

Это создаст FTP-сервер только для чтения с анонимной учетной записью. Обратите внимание, что вы можете включить запись (выгрузку) с помощью -w , а также указать другие параметры, включая определенный интерфейс (если есть), порт и каталог FTP:

python -m pyftpdlib -w -i localhost -p 8081 -d "C:\path\to\FTP\anon"

Полный список параметров командной строки доступен с помощью python -m pyftpdlib -h .

pyftpdlib Примечания сценария

Если вы хотите запустить pyftpdlib из примеров обучающих сценариев в Windows, вам следует помнить следующее:

  • Разделители каталогов Windows нужно будет экранировать (то есть вам нужно использовать \\ между папками, а не просто \). Это не относится к серверам, запущенным через командную строку (см. Выше).

  • Если вы получаете ошибки сокета, это обычно происходит либо из-за проблем с брандмауэром / разрешением в Windows, либо из-за того, что порт уже используется. В любом случае, исправьте проблему или выберите другой порт.

  • Атрибут perm= для authorizer.add_user является необязательным, но, если он пропущен, пользователь по умолчанию получает доступ только для чтения. Чтобы увидеть список того, что означают все разрешения, вы должны взглянуть на документацию API .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .