Guest User

Untitled

a guest
Jan 22nd, 2019
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. import datetime
  2. import sys
  3. import boto3
  4.  
  5.  
  6. def copy_objects_by_params():
  7. origin_bucket_name = input("Insert origin bucket name: ")
  8. origin_bucket_prefix = input("Insert origin bucket objects prefix: ")
  9. dest_bucket_name = input("Insert destination bucket name: ")
  10. start_date_str = input("Insert UTC start date (YYYY-MM-DD): ")
  11. start_time_str = input("Insert UTC start time (hrs:mins:secs): ")
  12.  
  13. splitted_date_str = start_date_str.split("-")
  14. splitted_time_str = start_time_str.split(":")
  15. start_date = datetime.datetime(int(splitted_date_str[0]), int(splitted_date_str[1]), int(splitted_date_str[2]),
  16. int(splitted_time_str[0]), int(splitted_time_str[1]), int(splitted_time_str[2]),
  17. tzinfo=datetime.timezone.utc)
  18.  
  19. s3 = boto3.client('s3')
  20. resp = s3.list_objects_v2(Bucket=origin_bucket_name, Prefix=origin_bucket_prefix)
  21. copied_elements = 0
  22. print("\nCopying elements...")
  23. for obj in resp['Contents']:
  24. if date_is_older(start_date=start_date, source=obj['LastModified']):
  25. copy_to_bucket(origin_bucket_name, dest_bucket_name, obj['Key'])
  26. copied_elements += 1
  27. print(str(copied_elements) + " objects copied.")
  28.  
  29.  
  30. def date_is_older(start_date, source):
  31. return start_date < source
  32.  
  33.  
  34. def copy_to_bucket(bucket_from_name, bucket_to_name, object_key):
  35. s3_resource = boto3.resource('s3')
  36. copy_source = {
  37. 'Bucket': bucket_from_name,
  38. 'Key': object_key
  39. }
  40. s3_resource.Object(bucket_to_name, object_key).copy(copy_source)
  41.  
  42.  
  43. if __name__ == "__main__":
  44. copy_objects_by_params()
  45. sys.exit(0)
Add Comment
Please, Sign In to add comment