Общий доступ к файлам с помощью Python

This page is a translated version of the page Sharing files with Python and the translation is 100% complete.
Other languages:
English • ‎русский

Введение

Существует множество способов совместного использования файлов в сети. Samba обычно используется для межсетевого обмена. Эти методы проще и быстрее настроить. Их можно использовать для обмена файлами между компьютером, смартфоном или планшетом.

Вы можете поделиться с:

  • OSX
  • Windows
  • Android

он будет работать на всех платформах.

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


Установка

В этом и заключается его прелесть - ничего не нужно устанавливать. Этот метод будет работать прямо из коробки, потому что Manjaro поставляется с Python 3, позволяющий легко и быстро обмениваться файлами в вашей сети.


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

Откройте терминал на компьютере, содержащем файлы, которыми вы хотите поделиться, перейдите в каталог, где находятся файлы, которыми вы хотите поделиться, например ˝/home; затем введите:

python -m http.server

Теперь перейдите на компьютер, телефон или вкладку, на которую должны прийти файлы, и откройте браузер.

.

В поле url браузера введите

http://IP_общедоступного_компьютера:8000

Чтобы найти IP-адрес компьютера, с которого вы хотите открыть общий доступ, введите:

ip addr

Что-то вроде этого:

http://192.168.55.123:8000

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


Теперь вы можете скачивать или открывать файлы. - Это так просто.

Обмен с других систем с вашим компьютером с Manjaro

Поскольку вы можете захотеть поделиться файлами с других компьютеров с вашим компьютером Manjaro; они могут иметь Python2 (Это относится к Debian, Mageia и некоторым другим дистрибутивам. В Windows вам нужно будет сначала установить Python).

Здесь нужно написать другую команду. Откройте терминал и напишите:

python -m SimpleHTTPServer

Перейдите на компьютер с Manjaro и откройте url как описано выше, и вы получите доступ к файлам.

Если вы хотите использовать другой порт, а не 8000 по умолчанию - например, 9000 - вы можете ввести его следующим образом:

python -m http.server 9000

Остановка сервера

После того, как вы поделились файлами, просто остановите сервер с помощью команды

CTRL+c

Это же так просто!

Некоторые замечания напоследок

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

Note
Это не постоянный файловый сервер

.

Создание постоянного файлового сервера (все еще простой способ)

Вы не должны использовать приведенное выше решение для общего доступа (на постоянной основе) на машине, подключенной к Интернету. Это позволит быстро и легко предоставить доступ к файлам одному человеку. Если 10 человек попытаются получить доступ к файлам одновременно - он не сработает - это решение для одного человека. Так что давайте немного поколдуем чтобы исправить это!

Установка

Установите python-twisted и python-service-identity (они находятся в репозитории extra).

sudo pacman -S python-twisted python-service-identity

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

Чтобы сделать постоянный сервер на порту 8080 с помощью python Вы должны перейти в каталог, который хотите расшарить, и ввести:

twistd3 web --path . 

twistd web will then start and you can access in the browser with:

http://localhost:8080/

Это выглядит немного лучше, и ваш терминал не будет занят "живым действием". Теперь несколько человек смогут получить доступ к файлам одновременно.

Если вам нужно установить сервер на другой порт, то Вы можете запустить его следующим образом:

twistd3 web --port "tcp:port=9000" --path .

В этом случае сервер будет находиться на порту 9000.



Python часто обновляется, поэтому если вы получите какие-либо ошибки при выполнении приведенной выше команды, то можете попробовать следующее:

python -c 'from twisted.web.server import Site; from twisted.web.static import File; from twisted.internet import reactor; reactor.listenTCP(8000, Site(File("."))); reactor.run()'

прервите его с помощью CTRL+Z, а затем введите bg, чтобы запустить в фоновом режиме.

Здесь сервер будет работать на порту 8000 и Вы можете изменить его по своему усмотрению.

Остановка сервера

Для прерывания работы сервера Вы должны ввести:

kill `cat twistd.pid`

Теперь у Вас есть постоянный файловый сервер.

Note
Если Вы хотите открыть общий доступ с других серверов на Manjaro (не с Manjaro), то вам может понадобиться установить python2-twisted и запустить сервер с помощью twistd web --path . systems

Это так просто!