File size: 1,533 Bytes
35cdf61 |
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 |
import boto3
from botocore.exceptions import NoCredentialsError, PartialCredentialsError
s3_client = boto3.client('s3')
bucket = 'app-faceanimate-s3'
#s3_client.list_objects_v2(Bucket=bucket)['Contents']
def upload_to_s3(bucket_name: str, local_file_path: str, s3_key: str) -> bool:
s3_client = boto3.client('s3')
try:
s3_client.upload_file(local_file_path, bucket_name, s3_key)
print(f"Successfully uploaded {local_file_path} to {bucket_name}/{s3_key}")
return True
except Exception as e:
print(f"Error uploading file: {e}")
return False
def generate_presigned_url(bucket_name: str, object_key: str, expiration: int = 3600) -> str:
s3_client = boto3.client('s3')
try:
response = s3_client.generate_presigned_url(
'get_object',
Params={'Bucket': bucket_name, 'Key': object_key},
ExpiresIn=expiration
)
return response
except (NoCredentialsError, PartialCredentialsError) as e:
print(f"Credentials error: {e}")
return None
except Exception as e:
print(f"Error generating pre-signed URL: {e}")
return None
def delete_from_s3(bucket_name: str, object_key: str) -> bool:
s3_client = boto3.client('s3')
try:
s3_client.delete_object(Bucket=bucket_name, Key=object_key)
print(f"Successfully deleted {object_key} from {bucket_name}")
return True
except Exception as e:
print(f"Error deleting file: {e}")
return False
|