import tarfile import os import io import boto3 import requests from urllib.parse import urlparse from datetime import datetime, timedelta s3 = boto3.resource( 's3', region_name='us-east-2' ) secrets_client = boto3.client('secretsmanager') yesterday = datetime.now() - timedelta(1) date = yesterday.strftime('%Y%m%d') # Define the URL to download url = f"https://download.maxmind.com/geoip/databases/GeoIP2-City/download?date={date}&edition_id=GeoIP2-City&suffix=tar.gz" # MaxMind credentials username = os.environ.get("MAXMIND_ACCOUNT") password = os.environ.get('MAXMIND_KEY') print ('username: ', username) print ('password: ', password) def handler(event, context): response = requests.get(url, auth=(username, password), allow_redirects=True) buffer = io.BytesIO(response.content) with tarfile.open(fileobj=buffer, mode='r:gz') as tar: for member in tar.getmembers(): if member.isfile(): file_content = tar.extractfile(member).read() file_name = member.name print(f"Filename: {file_name}") if '.mmdb' in member.name: ob = s3.Object('suno-prod-maxmind-database', f'GeoIP2-City.mmdb') ob.put(Body=file_content) else: print(f"{member.name} is a directory; skipping.")