· 5 years ago · Jan 20, 2020, 11:54 AM
1import os
2def download_folder(bucketName,remoteDirectoryName):
3 ACCESS_KEY = 'AKIATOVRUVCJC74RNKVI'
4 SECRET_KEY = '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'
5 s3_resource = boto3.resource('s3',aws_access_key_id=ACCESS_KEY_ID,aws_secret_access_key= ACCESS_SECRET_KEY)
6 bucket = s3_resource.Bucket(bucketName)
7 for object in bucket.objects.filter(Prefix = remoteDirectoryName):
8 if not os.path.exists(os.path.dirname(object.key)):
9 os.makedirs(os.path.dirname(object.key))
10 bucket.download_file(object.key,object.key)
11#move folder
12def move_folder(folder_name,bucket_name,second_foldername):
13 s3_ = boto3.client('s3',aws_access_key_id=ACCESS_KEY_ID,aws_secret_access_key= ACCESS_SECRET_KEY,)
14 directory_name = second_foldername+'/'+folder_name #it's name of your folders
15 s3 = boto3.resource('s3',aws_access_key_id= ACCESS_KEY,aws_secret_access_key= SECRET_KEY)
16 bucket =s3.Bucket(bucket_name)
17 all_files=[]
18 for obj in bucket.objects.filter(Prefix=folder_name):
19 all_files.append(obj.key)
20 s3_.put_object(Bucket=bucket_name, Key=(directory_name+'/'))
21 if len(all_files)>1:
22 all_files=all_files[1:]
23 for element in all_files:
24 copy_source = {
25 'Bucket': bucket_name,
26 'Key': str(element)
27 }
28 print("Element: ",element)
29 file_split=element.split('/')
30 print("+++++++++++++++++++++++++++")
31 print("file split: ",file_split)
32 print("===================")
33 filename =file_split[-1]
34 print("filename: ",filename)
35 if filename not in file_split:
36 key ='{}/{}'.format(directory_name,filename)
37 print("Key: ",key)
38 s3.meta.client.copy(copy_source,bucket_name, Key=key)
39 else:
40 index_parent=None
41 for i in range(len(file_split)):
42 if file_split[i] == folder_name:
43 index_parent = i
44
45 else:
46 print("no any file insider folder")
47 for obj in bucket.objects.filter(Prefix=folder_name):
48 s3.Object(bucket.name,obj.key).delete()
49 print('done.')