擅长:python、mysql、java
<p>来自@SebastiánRamírez的<a href="https://stackoverflow.com/a/55874802/249341">answer</a>为我指出了正确的方向,但是对于那些想要解决问题的人来说,我需要几行代码才能使其工作。我需要从starlette导入<code>FileResponse</code>(不是fastAPI?),添加CORS支持,并从临时文件返回。也许还有更好的方法,但我无法让流媒体工作:</p>
<pre class="lang-py prettyprint-override"><code>from starlette.responses import FileResponse
from starlette.middleware.cors import CORSMiddleware
import tempfile
app = FastAPI()
app.add_middleware(
CORSMiddleware, allow_origins=["*"], allow_methods=["*"], allow_headers=["*"]
)
@app.post("/vector_image")
def image_endpoint(*, vector):
# Returns a raw PNG from the document vector (define here)
img = my_function(vector)
with tempfile.NamedTemporaryFile(mode="w+b", suffix=".png", delete=False) as FOUT:
FOUT.write(img)
return FileResponse(FOUT.name, media_type="image/png")
</code></pre>