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

Revision as of 18:03, 26 December 2022 by Krotesk (talk | contribs) (Created page with "Если вам нужно установить сервер на другой порт, то Вы можете запустить его следующим образом:")
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 .

In this case the server will be on port 9000.



Python is often updated so if you get any errors running the command above you can alternatively try:

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()'

break it off with CTRL+Z and then type bg to start it in the background.

Here the server will be on port 8000 you can change it to your liking.

Stopping the server

To stop this server you can type:

kill `cat twistd.pid`

Now you have a permanent file server.

Note
If you want to share from other servers to (not from) Manjaro then you may need to install python2-twisted and start the server with twistd web --path . systems

It's as easy as that!