Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import datetime
- import sys
- import boto3
- def copy_objects_by_params():
- origin_bucket_name = input("Insert origin bucket name: ")
- origin_bucket_prefix = input("Insert origin bucket objects prefix: ")
- dest_bucket_name = input("Insert destination bucket name: ")
- start_date_str = input("Insert UTC start date (YYYY-MM-DD): ")
- start_time_str = input("Insert UTC start time (hrs:mins:secs): ")
- splitted_date_str = start_date_str.split("-")
- splitted_time_str = start_time_str.split(":")
- start_date = datetime.datetime(int(splitted_date_str[0]), int(splitted_date_str[1]), int(splitted_date_str[2]),
- int(splitted_time_str[0]), int(splitted_time_str[1]), int(splitted_time_str[2]),
- tzinfo=datetime.timezone.utc)
- s3 = boto3.client('s3')
- resp = s3.list_objects_v2(Bucket=origin_bucket_name, Prefix=origin_bucket_prefix)
- copied_elements = 0
- print("\nCopying elements...")
- for obj in resp['Contents']:
- if date_is_older(start_date=start_date, source=obj['LastModified']):
- copy_to_bucket(origin_bucket_name, dest_bucket_name, obj['Key'])
- copied_elements += 1
- print(str(copied_elements) + " objects copied.")
- def date_is_older(start_date, source):
- return start_date < source
- def copy_to_bucket(bucket_from_name, bucket_to_name, object_key):
- s3_resource = boto3.resource('s3')
- copy_source = {
- 'Bucket': bucket_from_name,
- 'Key': object_key
- }
- s3_resource.Object(bucket_to_name, object_key).copy(copy_source)
- if __name__ == "__main__":
- copy_objects_by_params()
- sys.exit(0)
Add Comment
Please, Sign In to add comment