NSS / src /cloud /s3_syncer.py
Kshitijk20's picture
Clean deployment without binary files
a21e473
import os
import shutil
class s3sync:
def __init__(self, Local_sync_folder = "s3_sync_folder"):
self.Local_sync_folder = Local_sync_folder
if not os.path.exists(self.Local_sync_folder):
os.makedirs(self.Local_sync_folder, exist_ok=True)
def sync_folder_to_s3(self, folder, aws_bucket_url):
# command = (
# f"aws s3 sync {folder} {aws_bucket_url}"
# )
# os.system(command)
try:
dest_path= aws_bucket_url.replace("s3://","").replace(aws_bucket_url.split("/")[0] + "/", "")
destination = os.path.join(self.Local_sync_folder, dest_path)
# copy folder
if os.path.exists(destination):
shutil.rmtree(destination)
shutil.copytree(folder, destination)
print(f"Synced {folder} to {destination}")
except Exception as e:
print(f"Error syncing folder to S3: {e}")
def sync_folder_from_s3(self, folder, aws_bucket_url):
# command = (
# f"aws s3 sync {aws_bucket_url} {folder}"
# )
# os.system(command)
try:
source_path = aws_bucket_url.replace("s3://","").replace(aws_bucket_url.split("/")[0] + "/", "")
source = os.path.join(self.Local_sync_folder, source_path)
if os.path.exists(folder):
shutil.rmtree(folder)
shutil.copytree(source, folder)
print(f"Synced {source} to {folder}")
except Exception as e:
print(f"Error syncing folder from S3: {e}")