Spaces:
Running
Running
File size: 1,882 Bytes
1e2bb3e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
import boto3
from funcs.helper_functions import get_or_create_env_var
client_id = get_or_create_env_var('AWS_CLIENT_ID', 'aws_client_placeholder') # This client id is borrowed from async gradio app client
print(f'The value of AWS_CLIENT_ID is {client_id}')
user_pool_id = get_or_create_env_var('AWS_USER_POOL_ID', 'aws_user_pool_placeholder')
print(f'The value of AWS_USER_POOL_ID is {user_pool_id}')
def authenticate_user(username, password, user_pool_id=user_pool_id, client_id=client_id):
"""Authenticates a user against an AWS Cognito user pool.
Args:
user_pool_id (str): The ID of the Cognito user pool.
client_id (str): The ID of the Cognito user pool client.
username (str): The username of the user.
password (str): The password of the user.
Returns:
bool: True if the user is authenticated, False otherwise.
"""
client = boto3.client('cognito-idp') # Cognito Identity Provider client
try:
response = client.initiate_auth(
AuthFlow='USER_PASSWORD_AUTH',
AuthParameters={
'USERNAME': username,
'PASSWORD': password,
},
ClientId=client_id
)
# If successful, you'll receive an AuthenticationResult in the response
if response.get('AuthenticationResult'):
return True
else:
return False
except client.exceptions.NotAuthorizedException:
return False
except client.exceptions.UserNotFoundException:
return False
except Exception as e:
print(f"An error occurred: {e}")
return False
def download_file_from_s3(bucket_name, key, local_file_path):
s3 = boto3.client('s3')
s3.download_file(bucket_name, key, local_file_path)
print(f"File downloaded from S3: s3://{bucket_name}/{key} to {local_file_path}") |