,可以通过使用Streaming Response来实现。Streaming Response是FastAPI中的一个响应类,它允许我们将数据流式传输到客户端。
以下是实现该功能的步骤:
from fastapi import FastAPI
from fastapi.responses import StreamingResponse
app = FastAPI()
@app.get("/multiple_files")
async def get_multiple_files():
# 生成多个文件的数据
file1_data = b"File 1 Data"
file2_data = b"File 2 Data"
# 创建一个生成器函数,用于逐个生成文件数据
def generate_files():
yield file1_data
yield file2_data
# 使用StreamingResponse将文件数据流式传输到客户端
return StreamingResponse(generate_files(), media_type="application/octet-stream")
在上述代码中,我们定义了一个GET请求的路由/multiple_files
,当客户端发送该请求时,会生成两个文件的数据,并使用StreamingResponse将文件数据流式传输到客户端。generate_files()
函数是一个生成器函数,通过yield
关键字逐个生成文件数据。
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)
现在,当访问http://localhost:8000/multiple_files
时,将会返回两个文件的数据流。
这种方法适用于需要返回多个文件的场景,例如批量下载、打包下载等。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云