Jul242013

Compartir archivos fácil y rápidamente gracias a Python.

PythonUsando el SimpleHTTPServer que Python implementa podremos compartir archivos mediante HTTP desde GNU/Linux, Windows y probablemente MacOS con quien queramos y dejar de compartirlos en cuanto deje de ser necesario. Es tan simple como abrir una consola en la carpeta que queramos compartir (Si usas Dolphin como navegador de archivos puedes pulsar MAYUS+F4 para abrir una consola en la carpeta actual) y teclear los siguiente:
En GNU/Linux En Windows
Python 2: python -m SimpleHTTPServer 8000 C:Python27python.exe -m SimpleHTTPServer 8000
Python 3: python -m http.server 8000 C:Python31python.exe -m http.server 8000

Nota: En el caso de Windows, la ruta incluye la versión de Python que se está usando (por ejemplo 27 significa versión 2.7), es posible que en tu caso no tengas esa misma versión y tengas que poner otro número. Ademas, Windows on trae instalado Python por defecto, por lo que tendras que descargarlo desde http://www.python.org/download/.

Después le dices a la otra persona que ponga en su navegador web http://tuIP:8000 (por ejemplo: http://192.168.1.33:8000) y ya podrá ver todos los fichero que tienes en esa carpeta, al terminar cierras la consola y ya no podrá acceder nadie.

Notar que 8000 es el puerto elegido para montar el mini servidor HTTP, pero no tiene por que ser ese, puede ser el que tu quieras. Y aclarar que si quieres compartir ficheros con alguien que no está dentro de tu misma red local (por internet), tan solo debes abrir el puerto 8000, o el que hallas elegido, en tu router para que cualquier persona del mundo pueda acceder. No olvides darle tu IP externa y no tu IP local, porque de otro modo jamas podrá acceder. Para saber tu IP externa puedes usar servicios como el de http://www.whatsmyip.org/.

Política de comentarios

Dada la importancia de los comentarios como espacio de participación, te pedimos por favor que leas detenidamente y cumplas con las siguientes normas de participación.

11 respuestas para “Compartir archivos fácil y rápidamente gracias a Python.

Manuel Solis-Zavala

Elías:

Gran, gran aporte, se agradece muchísimo!

Saludos!


Manuel Solis-Zavala

Puedes instalar de manera muy sencilla, una pequeña interface GUI, para compartir archivos justo como lo ha explicado Elías aquí arriba, pero sin necesidad de usar la terminal, bueno solo para correr el script, aquí los comandos para descargarla desde Github, el desempaquetado y la ejecución del script:

$ wget -c -O py-share.tar.gz https://github.com/lesthack/py-share/tarball/master

$ tar zxvf py-share.tar.gz

$ cd lesthack-py-share-40d0046/

$ ./py-share.py &

Saludos!


Elías R.M.

Hola Manuel,

Muchas gracias por tu comentario y aportación.

Con respecto a la interfaz gráfica que comentas (una muy buena idea), parece que en mi sistema no funciona, pues obtengo una violación de segmento al seleccionar la carpeta que deseo compartir.

Voy a estudiar cual puede ser el error y, si lo logro solucionar, ampliaré el post con tu aportación.

Saludos


Manuel Solis-Zavala

Hola Elías,

Es probable que se deba a que necesitas saber la IP real que te proporciona tu proveedor IPS, para eso te pongo la liga de la fuente, la persona que creo la GUI y la recomendacion que hace de entrar a la pagina http://www.whatsmyip.org para saber cual es tu IP real

Fuente: http://lesthack.com.mx/2012/03/22/pyshare-una-forma-facil-de-compartir-archivos-en-la-red/

Saludos!


Manuel Solis-Zavala

Perdon, ya habias puesto la pagina whatsmyip.org de cualquier forma no se trata de ese error, el que comentas, no lei bien tu respueta, pido una disculpa, de cualquier forma, espero que te sirva el vinculo de la fuente!

Saludos!


Elías R.M.

No hay problema.

Estoy intentando descubrir la causa del error, en el caso de que lo descubra, lo comunicaré.

Saludos


Elías R.M.

Hola de nuevo Manuel,

Después de intentar ejecutar sin éxito el script que indicas, he decido coger al toro por los cuernos y desarrollar el mío propio. Actualmente funciona, aunque es una alpha.

Lo puedes encontrar en mi GitHub https://github.com/erm2587/py-qt-share


Jimmy Olano

Probado y comprobado, tanto en red de área local como desde fuera (por supuesto, configurando nuestro enrutador para desviar toda petición al puerto 8000 hacia la dirección IP local del ordenador donde ejecutamos el guión en Python).

Dado que ha transcurrido buena cantidad de tiempo, estamos trabajando en publicar un artículo sobre como ejecutarlo en Python 3.X, ¡pronto tendrán noticias de nuestro trabajo!

GRACIAS por compartir conocimientos, agradecido 😎 .


Elías R.M.

Muchas gracias Jimmy Olano,

Quedo pendiente de nuevas.

Saludos


Juan Ca

Hola,

existe alguna manera de armar algo como lo que mencionás pero para usarlo en una web y que valida contra una web?, tienes algún ejemplo de eso?


Elías R.M.

Hola Juan Ca,

Entiendo que quieres tener una pagina web en un servidor que permita listar los ficheros de una carpeta del mismo… Para eso hay soluciónes específicas en PHP o cualquier otro lenguaje, incluso Python (usando Django).

No dispongo de ningún ejemplo ahora mismo, pero una búsqueda rápida en Google te lo solunará 😉

Saludos


Deja un comentario

Tu dirección de correo electrónico no será publicada.