Я загружаю файл через Laravel и использую Guzzle, чтобы помочь с этим.Функция выглядит следующим образом:
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'url', [
'multipart' => [[
'name' => 'file',
'contents' => $file,
'filename' => $save_name,
]]
]);
$response = json_decode($response->getBody(),true);
dd($response);
Эта функция отправляется в функцию Lambda, которая представляет собой небольшое приложение Flask, которое ради того, чтобы задавать этот вопрос, было сведено к абсолютно голым костям, но при этом вызывает ошибки.
from flask import Flask, request
app = Flask(__name__)
@app.route('/',methods=['POST'])
def main():
start = time.time()
data = request.files['file']
return data.name
if __name__ == '__main__':
app.run(port=5000, debug=True)
Это на самом деле отлично выводится, когда я перехожу на экран, однако, когда я просматриваю хвостовые журналы, возникают непрерывные ошибки, следующие:
[1551111648511] Working outside of request context.
This typically means that you attempted to use functionality that needed
an active HTTP request. Consult the documentation on testing for
information about how to avoid this problem.: RuntimeError
Traceback (most recent call last):
File "/var/task/handler.py", line 580, in lambda_handler
return LambdaHandler.lambda_handler(event, context)
File "/var/task/handler.py", line 248, in lambda_handler
return handler.handler(event, context)
File "/var/task/handler.py", line 424, in handler
result = self.run_function(app_function, event, context)
File "/var/task/handler.py", line 283, in run_function
result = app_function(event, context) if varargs else app_function()
File "/var/task/main.py", line 31, in main
if request.method == 'POST':
File "/var/task/werkzeug/local.py", line 347, in __getattr__
return getattr(self._get_current_object(), name)
File "/var/task/werkzeug/local.py", line 306, in _get_current_object
return self.__local()
File "/var/task/flask/globals.py", line 37, in _lookup_req_object
raise RuntimeError(_request_ctx_err_msg)
RuntimeError: Working outside of request context.
This typically means that you attempted to use functionality that needed
an active HTTP request. Consult the documentation on testing for
information about how to avoid this problem.
Прочитавнесколько других ответов, я пытался вставить
with app.test_request_context:
data = request.files['file']
, однако это приводит к неправильному запросу.
Если я отправляю запрос скручивания с моей локальной машины с прикрепленным файлом, онработает нормально, без ошибок, поэтому мне интересно, если это что-то связано с жадностью.
Как всегда, вся помощь очень ценится!