· 6 years ago · Feb 04, 2019, 10:32 AM
1import sys
2import os
3import boto3
4
5access_key = os.getenv('AWS_ACCESS_KEY')
6secret_key = os.getenv('AWS_SECERT_KEY')
7bucket_name = os.getenv('AWS_BUCKET')
8folder_name = os.getenv('FOLDER_NAME')
9root_folder_path = os.getenv('ROOT_FOLDER_PATH')
10
11if not (access_key and secret_key):
12 print("Keys not provided correctly.")
13 sys.exit()
14
15if not bucket_name:
16 print("Bucket Name is not specified.")
17 sys.exit()
18
19if not folder_name:
20 print("Folder Name is not specified.")
21 sys.exit()
22
23session = boto3.Session(
24 aws_access_key_id=access_key,
25 aws_secret_access_key=secret_key
26)
27s3 = session.resource('s3')
28
29bucket = s3.Bucket(bucket_name)
30
31list_of_s3_object_in_folder = bucket.objects.filter(Prefix=folder_name)
32
33for file in list_of_s3_object_in_folder:
34 path, filename = os.path.split(file.key)
35 try:
36 os.makedirs(path)
37 except FileExistsError:
38 pass
39 if str(path + "/") == str(file.key):
40 pass
41 else:
42 bucket.download_file(file.key, root_folder_path + file.key)