【问题标题】:How to upload a single file to FastAPI server using CURL如何使用 CURL 将单个文件上传到 FastAPI 服务器
【发布时间】:2021-08-30 09:34:35
【问题描述】:

我正在尝试设置一个 FastAPI 服务器,该服务器可以使用 curl 从命令行接收单个文件上传。 p>

我在这里学习 FastAPI 教程:

https://fastapi.tiangolo.com/tutorial/request-files/?h=upload+file

from typing import List
from fastapi import FastAPI, File, UploadFile
from fastapi.responses import HTMLResponse
app = FastAPI()

@app.post("/file/")
async def create_file(file: bytes = File(...)):
     return {"file_size": len(file)}

@app.post("/uploadfile/")
async def create_upload_file(file: UploadFile = File(...)):
    return {"filename": file.filename}

@app.post("/files/")
async def create_files(files: List[bytes] = File(...)):
    return {"file_sizes": [len(file) for file in files]}

@app.post("/uploadfiles/")
async def create_upload_files(files: List[UploadFile] = File(...)):
    return {"filenames": [file.filename for file in files]}

运行此代码,然后在浏览器中打开“http://127.0.0.1:5094”,我会得到一个上传表单,其中包含四种选择文件和上传的方式

我遵循了这个教程: https://medium.com/@petehouston/upload-files-with-curl-93064dcccc76

我尝试像这样在当前目录中上传文件“1.json”

curl -F "file=@1.json" http://127.0.0.1:5094/uploadfiles

在服务器端我得到这个结果

INFO:     127.0.0.1:58772 - "POST /uploadfiles HTTP/1.1" 307 Temporary Redirect

我不明白为什么会发生重定向。

我需要有关如何猜测正确的 curl 语法或在 FastAPI 端解决此问题的帮助。

【问题讨论】:

    标签: python curl fastapi


    【解决方案1】:

    解决方案是告诉 curl 跟随重定向。

    curl -L -F "file=@1.json" http://127.0.0.1:5094/uploadfile
    

    然后上传文件。

    【讨论】:

    • 在 URL 中添加斜杠也应该这样做curl -F "file=@1.json" http://127.0.0.1:5094/uploadfiles/
    猜你喜欢
    • 2013-11-19
    • 2013-06-24
    • 2012-07-20
    • 1970-01-01
    • 2017-01-23
    • 1970-01-01
    • 2013-12-14
    • 2015-12-15
    • 2019-07-04
    相关资源
    最近更新 更多