Sharing files with Python

Revision as of 07:52, 30 July 2016 by imported>Viking60 (→‎using it)

Introduction

There are many ways to share files in a network. Samba is commonly used for interop sharing. These methods will be easier and faster to set up. They can be used to share files between your computer your Smartphone or Tab/Pad.

You can share with:

  • OSX,
  • Windows
  • Android

it will work on all platforms.

This is for the situation that you need to share something fast and is not advisable as part of your regular infrastructure.


Installing

That is the beauty of it - there is nothing to install. This method will work right out of the box because Manjaro comes with Python 3 which makes it easy to share files rapidly in your network.


Using it

Open a terminal on the computer that contains the files you want to share and navigate to the directory where the files you want to share are like ˝/home; then type:

python -m http.server

Now go to the computer, phone or tab that should receive the files and open a browser. In the url field of the browser you type

http://the_IP_of the_sharing_computer:8000

To find the IP of the computer you want to share from you type:

ip addr

Something like this:

http://192.168.0.123:8000

This will list all the files in the directory of the sharing computer.:

Now you can download or open the files. - It is as easy as that.

Sharing from other systems with your Manjaro computer

Since you might want to share files from other computers with your Manjaro computer; they may have Python2 (This is the case for Debian,, Mageia and several other distros. In Windows you need to install Python first)

Here you have to write a different command. Open a terminal and write:

python -m SimpleHTTPServer

Go to your Manjaro computer and open the url as described above and you will have access to the files.

If you want to use another port than the default 8000 - say 9000 - you can enter it like this:

python -m http.server 9000

stopping the server

Once you have shared the files; just stop the server with

CTRL+c

It is as easy as that!

Some final remarks

This server will live in your terminal and occupy it until you cancel it. You can see every transaction. You can only share with one computer at the time. It is a fast and super easy solution for that. This is not a permanent file server.


Creating a permanent file server (still the easy way)

You would not want to use the sharing solution above (permanently) on an internet connected machine. It will share your files quick and easy to one person. If 10 persons try to access the files at the same time it will not work - it is a one at the time solution. So let's work some magic to fix that!

Installation

Install python2-twisted (it is in the extra repo).

pacman -S python2-twisted

using it

To make a permanent server on port 8000 with python; you can go to the directory you want to share and type:

twistd web --path . --port 8000

twistd web will then start and you can access with the browser as described above.

It looks a bit better and your terminal will not be occupied with "live action". Here all people can access the files at the same time.

If you are comfortable with using the default port 8080 It will be enough to simply type:

twistd web

Stopping the server

To stop this server you can type:

kill `cat twistd.pid`

Now you have a permanent file server.

It's as easy as that!