当前位置: 首页 > 知识库问答 >
问题:

使用curl-307临时重定向将flie上传到FastAPIendpoint

秋和雅
2023-03-14

我有一个fastAPIendpoint,它接收文件并将其保存到磁盘,如下所示:

from fastapi import FastAPI, File, UploadFile
import shutil

app = FastAPI()

@app.post('/upload')
async def upload_file(file: UploadFile=File(...)):
    with open(file.filename, "wb") as buffer:
        shutil.copyfileobj(file.file, buffer)

    return {
        "filename": file.filename,
    }

当我通过http://localhost:8000/docs的docs界面上传文件时,这是可以预期的。

但是,尝试与curl相同失败:

curl -X POST localhost:8000/upload -F file=@photo.png

curl命令不返回任何内容,并且在服务器端记录307临时重定向。

我不确定我在这里错过了什么


共有1个答案

子车征
2023-03-14

FastAPI重定向请求的某些场景/设置中,使用带有完整dns/ip地址的curl。

像这样的东西:

curl -X 'POST' '127.0.0.1:8000/upload' -F 'file=@photo.png

或者也可以根据构建的应用程序添加标头(-H)。

curl -X 'POST' \
  'http://127.0.0.1:8000/upload' \
  -H 'accept: application/json' \
  -H 'Content-Type: multipart/form-data' \
  -F 'file=@photo.png;type=application/json'
 类似资料:
  • 我需要设置客户端请求从一台服务器到另一台服务器的临时自动重定向。从服务器端: 然而,从客户端来看,不会发生自动重定向,并且该过程陷入异常(状态代码307)。我可以通过WebException提供重定向,但我不想。如何设置自动重定向?请帮忙。客户端代码:

  • 我想知道当从OpenID Connect Endpoint检索JWKS时,Jose4J是否处理重定向超文本传输协议状态代码(例如307)。 我自己现在做检索和传递JWKS给Jose4J所谓的带外。现在,当我切换网络时,我得到了很多307,不知道让Jose4J在支持307和其他重定向状态时进行JWKS检索是否明智 谢谢 简

  • 我想知道301和307重定向之间的区别。 我希望通过自制url重定向器生成反向链接,我希望任何“链接果汁”或“页面排名果汁”都能直接从原始主页流向最终url,但如果其中一个原始主页出现问题,我希望能够通过删除该特定页面的重定向链接来关闭该链接。有道理? 我的理解是,301是永久性的,这意味着谷歌将看到301并更新其缓存的URL作为最终目的地,而不管我以后是否取消重定向。 如果我使用307,它将不会

  • 我使用Java编写了soap客户端服务 我还使用了Spring WS 当我通过SoapUI发送请求时,我会得到响应 当我使用客户机代码发送请求时,我得到一个错误 客户配置 你能帮助我吗?我真的不知道怎么修。谢谢

  • 问题内容: 我正在尝试使curl遵循重定向,但无法完全正常工作。我有一个字符串,我想将它作为GET参数发送到服务器并获取结果URL。 例: 字符串= Kobold害虫 网址= _www.wowhead.com/search?q=Kobold+Worker_ 如果您转到该URL,它将把您重定向到“ www.wowhead.com/npc=257”。我希望curl将此URL返回到我的PHP代码,以便我

  • 问题内容: 我正在使用curl填写表格。完成发布后,另一个处理表单的脚本将重定向到另一个URL。我想将此重定向URL转换为变量。 问题答案: 你会用 并解析标题的标题