У меня есть список файлов .zip на S3, который динамически создается и передается для просмотра / загрузки в колбу.Кажется, моя проблема не в том, чтобы перебирать этот список, а в том, чтобы вернуть ответ, чтобы все файлы из списка были загружены на компьютер пользователя.Если у меня есть представление, возвращающее ответ, оно загружает только первый файл, поскольку return закрывает соединение.Я перепробовал несколько вещей и посмотрел на похожие проблемы (например: Boto3 для загрузки всех файлов из S3 Bucket ), но до сих пор не удалось решить эту проблему.Я также посмотрел на потоковую передачу (как здесь: http://flask.pocoo.org/docs/1.0/patterns/streaming/) и попытался создать подфункцию, которая является генератором, но та же проблема сохраняется, так как мне все еще приходится передавать возвращаемое значение в функцию View - вот последнийПример кода:
@app.route('/download', methods=['POST'])
def download():
download=[]
download = request.form.getlist('checked')
def generate(result):
s3_resource = boto3.resource('s3')
my_bucket = s3_resource.Bucket(S3_BUCKET)
d_object = my_bucket.Object(result).get()
yield d_object['Body'].read()
for filename in download:
return Response (generate(filename), mimetype='application/zip', headers={'Content-Disposition': 'attachment;filename=' + filename})
Как лучше всего это сделать, чтобы все файлы были загружены?Есть ли более простой способ передать список в boto3 или любой другой модуль фляги для загрузки этих файлов?