Как вы отправляете файлы из торнадо в конечную точку колбы?

У меня есть колба API и приложение торнадо, потребляющее API. Мне нужно POST файлы из формы и передать запрос в API, который будет обрабатывать загрузку файлов.

Ресурс фляги выглядит примерно так:

class ImageResource(BaseResource):
    path = '/images'
    def post(self):
        for file in request.files.values():
            upload(file)

Обработчик торнадо выглядит примерно так:

class ImageHandler(BaseHandler):
    @gen.coroutine
    def post(self):
        status, result = yield self.async_api.post('/images', self.request.data)
        self.write_json(result)

Их проблема в том, что request.files пуст в ImageResource при использовании этой реализации. Как правильно это реализовать?

1 ответ

Решение

Похоже на колбу ImageResource ожидает multipart/form-data запрос. Если вход в торнадо ImageHandler уже в multipart/form-data формат, возможно, вам просто нужно передать правильный Content-Type заголовок. Чтобы передать копию заголовка непосредственно из входящего запроса, выполните fetch(url, body=self.request.body, headers=self.get_header("content-type")),

Другие вопросы по тегам