2017-01-24 4 views
2

Я легко могу загрузить файлы из ведра, но теперь мне нужно сделать загрузку из определенной папки в моем ведомости S3.Загрузка файлов подпапок в ведро S3 из boto2

настоящее время я использую следующий код:

import boto 
import boto.s3.connection 

access_key = 'XXXXXXXXXXXXXXXX' 
secret_key = 'XXXXXXXXXXXXXXXXXXXXXX+XXXXXXXXXXXXX' 

bucket_name = 'my_Bucket' 
conn = boto.connect_s3('XXXXXXXXXXXXXXXX','XXXXXXXXXXXXXXXXXXXXXX+XXXXXXXXXXXXX') 
bucket = conn.get_bucket(bucket_name) 
bucket_list = bucket.list() 

LOCAL_PATH = '/Users/tcssig/Documents/EPG/' 

for l in bucket_list: 
    keyString = str(l.key) 
    d = LOCAL_PATH + keyString 
    try: 
     l.get_contents_to_filename(d) 
    except OSError: 
     if not os.path.exists(d): 
      os.mkdir(d) 

Как получить файлы, загруженные из my_folder в ведро my_bucket?

+2

Вы не используете boto3. – hjpotter92

ответ

1

Укажите конкретный путь к папке в качестве префикса к list() метода

bucket_list = bucket.list(prefix='particular/folder/path') 
+0

Использование пути к папке как '/ folderName_inside_bucket /' не загружает файлы, находящиеся в папке. –

+0

Распечатайте 'bucket_list', чтобы узнать, содержит ли он файлы, находящиеся внутри папки. – franklinsijo

+0

bucket_list создается как '', когда я пытаюсь перебрать его и распечатать содержимое, я получаю пустой вывод. –

Смежные вопросы