From 0d7a428e06e22a6199a295400f2d0e156d34d394 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20R=C3=A4dle?= Date: Tue, 8 Oct 2024 13:53:43 -0700 Subject: [PATCH] [sam2][demo][1/x] Fix file upload Summary: The Strawberry GraphQL library recently disabled multipart requests by default. This resulted in a video upload request returning "Unsupported content type" instead of uploading the video, processing it, and returning the video path. This issue was raised in #361. A forward fix is to add `multipart_uploads_enabled=True` to the endpoint view. Test Plan: Tested locally with cURL and upload succeeds *Request* ``` curl http://localhost:7263/graphql \ -F operations='{ "query": "mutation($file: Upload!){ uploadVideo(file: $file) { path } }", "variables": { "file": null } }' \ -F map='{ "file": ["variables.file"] }' \ -F file=@video.mov ``` *Response* ``` {"data": {"uploadVideo": {"path": "uploads/.mp4"}}} ``` --- demo/backend/server/app.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/demo/backend/server/app.py b/demo/backend/server/app.py index 9902f47..424e85b 100644 --- a/demo/backend/server/app.py +++ b/demo/backend/server/app.py @@ -128,6 +128,10 @@ app.add_url_rule( # https://strawberry.rocks/docs/operations/deployment # https://strawberry.rocks/docs/integrations/flask allow_queries_via_get=False, + # Strawberry recently changed multipart request handling, which now + # requires enabling support explicitly for views. + # https://github.com/strawberry-graphql/strawberry/issues/3655 + multipart_uploads_enabled=True, ), )