Skip to content

Instantly share code, notes, and snippets.

@histrio
Created June 14, 2018 12:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save histrio/de16515e397a9bcd07df48c9a0bad5f0 to your computer and use it in GitHub Desktop.
Save histrio/de16515e397a9bcd07df48c9a0bad5f0 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python
import http.server
import socketserver
import boto3
from botocore.client import Config
class Handler(http.server.SimpleHTTPRequestHandler):
def get_client(self):
s3_con = boto3.client('s3', region_name='eu-west-1',
config=Config(signature_version='s3v4')
)
return s3_con
def return_redirect(self, url):
self.send_response(302)
self.send_header('Location', url)
self.end_headers()
def do_GET(self):
""" Download
"""
con = self.get_client()
url = con.generate_presigned_url('get_object', Params={
'Bucket': 'falseprotagonist-backups',
'Key': 'ttrss-db-2017-10-22_12:27.tar.xz'
}, ExpiresIn=3600)
self.return_redirect(url)
def do_POST(self):
""" Upload
"""
con = self.get_client()
url = con.generate_presigned_url('put_object', Params={
'Bucket': 'falseprotagonist-backups',
'Key': 'pgadmin.log'
}, ExpiresIn=3600)
self.return_redirect(url)
if __name__ == "__main__":
with socketserver.TCPServer(("", 8010), Handler) as httpd:
print("serving")
httpd.serve_forever()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment