Загрузите определенную папку и все ее файлы рекурсивно из битбакета S3, используя boto

Я знаю, как рекурсивно загружать файлы с помощью aws cli

aws s3 cp {s3Directory} {localDirectory} --recursive

Но я хочу использовать Python Boto, и ниже приведен мой код. Я хочу скачать папки и все их файлы ("Daily/2017/02/15/") из корзины "news-live". Когда я выполняю команду ниже, все папки создаются, но файл не загружается.

def main():
DOWNLOAD_LOCATION_PATH = "/Users/test/"
BUCKET_NAME = 'news-live'
conn  = boto.connect_s3(AWS_ACCESS_KEY_ID, AWS_ACCESS_SECRET_KEY)
bucket = conn.get_bucket(BUCKET_NAME)

#goto through the list of files
bucket_list = bucket.list('Daily/2017/02/15/')

for l in bucket_list:
    key_string = str(l.key)
    print("bucket key", l.key)
    s3_path = DOWNLOAD_LOCATION_PATH + key_string
    try:
        print ("Current File is ", s3_path)
        l.get_contents_to_filename(s3_path)
    except (OSError,S3ResponseError) as e:
        pass
        # check if the file has been downloaded locally  
        if not os.path.exists(s3_path):
            try:
                os.makedirs(s3_path)
            except OSError as exc:
                # let guard againts race conditions
                import errno
                if exc.errno != errno.EEXIST:
                    raise

Я не знаю, как получить эту работу.


person rick    schedule 13.03.2017    source источник
comment
Подобный вопрос задавали много раз. Ознакомьтесь с ответом на этот вопрос о том, как это сделать с помощью boto3. stackoverflow.com /вопросы/42673764/   -  person mootmoot    schedule 14.03.2017
comment
Вы можете найти ответ здесь: stackoverflow.com/questions/13063474/   -  person theBuzzyCoder    schedule 15.03.2017