Skip to content

Instantly share code, notes, and snippets.

@AndrewHanes
Created September 3, 2014 22:52
Show Gist options
  • Save AndrewHanes/e658baa330ac609fbac7 to your computer and use it in GitHub Desktop.
Save AndrewHanes/e658baa330ac609fbac7 to your computer and use it in GitHub Desktop.
Quick script to share a file over network
#!/usr/bin/python
import sys
import os
import tornado.web
import tornado.ioloop
path = ""
if len(sys.argv) != 2:
print("Usage %s file" % sys.argv[0])
exit(-1)
if os.path.exists(sys.argv[1]):
path = sys.argv[1]
else:
print("File doesn't exist")
exit(-1)
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.set_header ('Content-Type', 'application/octet-stream')
self.set_header ('Content-disposition', 'attachment; filename="' + os.path.split(path)[1] + '"')
with open(path, 'rb') as f:
while 1:
data = f.read(16384) # or some other nice-sized chunk
if not data: break
self.write(data)
self.finish()
if __name__ == "__main__":
application = tornado.web.Application([
(r"/", MainHandler),
])
application.listen(1337)
tornado.ioloop.IOLoop.instance().start()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment