boto-updater.py 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import boto3
  2. import os.path
  3. # Arguments
  4. folder_to_sync = './test/data'
  5. bucket_target = 'my-bucket'
  6. # Create connection
  7. s3 = boto3.client('s3', use_ssl=False, endpoint_url="http://172.17.0.2:9000", aws_access_key_id="minio", aws_secret_access_key="miniokey")
  8. # Reset bucket
  9. # Get file list
  10. # Source : https://stackoverflow.com/questions/3207219/how-do-i-list-all-files-of-a-directory
  11. local_file_list = os.listdir(folder_to_sync)
  12. bucket_file_list = [obj['Key'] for obj in s3.list_objects(Bucket=bucket_target)['Contents']]
  13. print("Local : ", folder_to_sync)
  14. print(local_file_list)
  15. # Upload
  16. print("Uploading new files ...")
  17. for file_name in local_file_list:
  18. print(file_name, end=' ')
  19. file_path = folder_to_sync + '/' + file_name
  20. if file_name in bucket_file_list:
  21. # Todo : compare modification dates
  22. print('(Not updated)')
  23. elif os.path.isfile(file_path):
  24. res = s3.upload_file(file_path, bucket_target, file_name)
  25. print('(New file)')
  26. else:
  27. print('(Skipped)')
  28. print("Done")