Загрузите большой видеофайл в виде фрагментов и отправьте некоторые параметры вместе с параметром python flask? - PullRequest
0 голосов
/ 24 апреля 2020

Я смог загрузить большой файл на сервер, используя следующий код -

@app.route("/upload", methods=["POST"])
def upload():
    with open("/tmp/output_file", "bw") as f:
        chunk_size = 4096
        while True:
            chunk = request.stream.read(chunk_size)
            if len(chunk) == 0:
                return
            f.write(chunk)

Но если я использую request.form ['userId'] или любой параметр, который отправляется как данные формы в приведенном выше Код не удается.

Как говорится в одном из постов блога, в запросе Flask есть поток, который будет содержать данные файла, которые вы загружаете. Вы можете прочитать его, рассматривая его как файлоподобный объект. Хитрость заключается в том, что вы не должны использовать другие атрибуты запроса, такие как request.form или request.file, потому что это материализует поток в память / файл. Flask по умолчанию сохраняет файлы на диск, если они превышают 500 КБ, поэтому не трогайте файл.

Есть ли способ, где мы можем отправить дополнительные параметры, такие как userId, вместе с файлом, загружаемым в flask?

...