linux poison RSS
linux poison Email

Woof - Simple Web-based File Sharing

Transferring files from one computer to another on a network isn't always a straightforward task. Equipping networks with a file server or FTP server or common web server is one way to simplify the process of exchanging files, but if you need a simpler yet efficient method, try Woof -- short for Web Offer One File. It's a small Python script that facilitates transfer of files across networks and only requires the recipient of the files have a Web browser.

Woof tries a different approach. It assumes that everybody has a web-browser or a command-line web-client installed. Woof is a small simple stupid web-server that can easily be invoked on a single file. Your partner can access the file with tools he trusts (e.g. wget). No need to enter passwords on keyboards where you don't know about keyboard sniffers, no need to start a huge lot of infrastructure, just do a
$ woof filename
and tell the recipient the URL woof spits out. When he got that file, woof will quit and everything is done. And when someone wants to send you a file, woof has a switch to offer itself, so he can get woof and offer a file to you.

Installation:
OpenSuSe user can install Woof using "1-click" installer - here

Usage:
Using Woof is really very simple, provide a valid ip address (your machine ip), port and filename that you wanted to share with other. Once it's up and running, Woof will write out a URL that the recipient can use. Example shown below ..

$ woof -i 192.168.1.2 -p 8888 testfile.txt
Now serving on http://192.168.1.2:8888/

As you can see that we have specifyed our IP address and the port with the -i and -p options and followed by the file we need to transfer.

Here you can also specify directory that need to transfer, When a directory is specified, an tar archive gets served. By default it is gzip compressed.

Once the file has been downloaded, Woof quits and prints an entry in the common log format that looks like:

poison.hell.com - - [03/Jan/2010 14:04:25] "GET /testfile.txt HTTP/1.0" 200 -

There is another option -c where you can specify the total number of times a file can be downloaded by any recipient. By default Woof sets this count to 1. In the example below, we set the count to 2 and Woof exits when the file has been downloaded twice, printing two log entries.

$ woof -i 192.168.1.2 -p 8888 -c 2 testfile.txt
Now serving on http://192.168.1.2:8888/
poison.hell.com - - [03/Jan/2010 16:09:45] "GET /testfile.txt HTTP/1.0" 200 -
poison.hell.com - - [03/Jan/2010 16:09:49] "GET /testfile.txt HTTP/1.0" 200 -

Customization
To make thing even more simple create a .woofrc file in your home directory with following content
[main]
ip = 192.168.1.2
port = 8888
count = 2
compressed = gz
Now with the help of this file you are not required to pass all those parameter, woof will pick up all the required parameter from this file.

$ woof testfile.txt


1 comments:

Post a Comment

Related Posts with Thumbnails