- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的代码:
from typing import List
from fastapi import FastAPI, File, UploadFile
import asyncio
import concurrent.futures
app = FastAPI()
@app.post("/send_images")
async def update_item(
files: List[UploadFile] = File(...),
):
return {"res": len(files)}
然后我向该服务器发送请求(这些特定的 URL 仅作为示例):
import requests
import os
import json
import numpy as np
import time
import io
import httpx
import asyncio
from datetime import datetime
import pandas as pd
from random import shuffle
import pandas as pd
import urllib
import io
from PIL import Image
from matplotlib import pyplot as plt
import concurrent.futures
urls = ['https://sun9-63.userapi.com/c638920/v638920705/1a54d/xSREwpakJD4.jpg',
'https://sun9-28.userapi.com/c854024/v854024084/1160d8/LDMVHYgguAw.jpg',
'https://sun9-54.userapi.com/c854220/v854220084/111f66/LdcbEpPR6tg.jpg',
'https://sun9-40.userapi.com/c841420/v841420283/4c8bb/Mii6GSCrmpo.jpg',
'https://sun6-16.userapi.com/CPQpllJ0KtaArvQKkPsHTZDCupqjRJ_8l07ejA/iyg2hRR_kM4.jpg',
'https://sun9-1.userapi.com/c638920/v638920705/1a53b/SMta6Bv-k7s.jpg',
'https://sun9-36.userapi.com/c857332/v857332580/56ad/rJCGKFw03FQ.jpg',
'https://sun6-14.userapi.com/iPsfmW0ibE8RsMh0k2lUFdRxHZ4Q41yctB7L3A/ajJHY3WN6Xg.jpg',
'https://sun9-28.userapi.com/c854324/v854324383/1c1dc3/UuFigBF7WDI.jpg',
'https://sun6-16.userapi.com/UVXVAT-tYudG5_24FMaBWTB9vyW8daSrO2WPFQ/RMjv7JZvowA.jpg']
os.environ['NO_PROXY'] = '127.0.0.1'
async def request_get_4(list_urls):
async with httpx.AsyncClient() as client:
r = httpx.post("http://127.0.0.1:8001/send_images", files={f'num_{ind}': el for ind, el in enumerate(list_urls)})
print(r.text)
return r
async def request_get_3(url):
async with httpx.AsyncClient() as client:
return await client.get(url)
from collections import defaultdict
async def main():
start = datetime.now()
tasks = [asyncio.create_task(request_get_3(url)) for url in urls[0:10]]
result = await asyncio.gather(*tasks)
data_to_send = []
for ind, resp in enumerate(result):
if resp.status_code == 200:
image_bytes = io.BytesIO(resp.content)
image_bytes.seek(0)
data_to_send.append(image_bytes)
end = datetime.now()
print(result)
print(len(data_to_send))
batch_size = 2
batch_num = len(data_to_send) // batch_size
tasks = [asyncio.create_task(request_get_4(data_to_send[i * batch_size: (i+1) * batch_size])) for i in range(batch_num)]
result = await asyncio.gather(*tasks)
left_data = data_to_send[batch_size*(batch_num):]
print(len(left_data))
print(result)
asyncio.run(main())
我正在尝试加载包含在 url 中的图像,然后形成它们的批处理并将它们发送到 FastAPI 服务器。但它不起作用。我收到以下错误:
{"detail":[{"loc":["body","files"],"msg":"field required","type":"value_error.missing"}]}
如何解决我的问题并能够通过 httpx 将多个文件发送到 FastAPI?
最佳答案
问题是 HTTPX 0.13.3 不支持多文件上传,因为这个参数需要字典,而字典不能有相同的键值。
我们可以使用这个拉取请求 https://github.com/encode/httpx/pull/1032/files解决这个问题(现在它也可以接受 List[Tuple[str, FileTypes]]])!
更新:这个问题现在已经解决了!
更新2:这里我展示了我如何使用 httpx 来处理不同的请求:
async def request_post_batch(fastapi_url: str, url_content_batch: List[BinaryIO]) -> httpx.Response:
"""
Send batch to FastAPI server.
"""
async with httpx.AsyncClient(timeout=httpx.Timeout(100.0)) as client:
r = await client.post(
fastapi_url,
files=[('bytes_image', url_content) for url_content in url_content_batch]
)
return r
async def request_post_logs(logstash_url: str, logs: List[Dict]) -> httpx.Response:
"""
Send logs to logstash
"""
async with httpx.AsyncClient(timeout=httpx.Timeout(100.0)) as client:
r = await client.post(
logstash_url,
json=logs
)
return r
关于python - 上传多个文件 UploadFiles FastAPI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63138497/
例子 这是我的代码: from typing import List from fastapi import FastAPI, File, UploadFile import asyncio imp
我有一个带有 2 个选项卡的选项卡 View 。我想为每个选项卡使用两个 uploadFile 组件。我对 uploadFile 组件使用“高级”模式。当我尝试为第一个选项卡 uploadFile 组
如何在没有 FileUpload.SaveAs Method 的情况下获取在 FileUpload 控件中选择的数据(读取文件)在服务器上?是否可以立即将其写入某个对象? 最佳答案 使用 FileUp
在我的应用程序中,我有 cordova camera允许我拍照并从中获取 URI 的插件。 const options: CameraOptions = { quality: 100, des
我需要帮助如何设置上传的文件的最后修改时间(在 jsp 上)。 我需要知道文件上传的时间。这是我的代码,但 Eclipse 说“方法 setLastModified(Date) 对于 UploadFi
我正在尝试使用 eBay Large Merchant Services API 批量上传调用。这个 API 和文档是出了名的糟糕(我发现了一篇博客文章解释了它并反对它 here )。我能找到的最接近
Katalon 自定义“uploadFiles”关键字未加载文件。 Katalon 网站声明 Katalon 关键字“UploadFile”将仅在该标签存在于页面上时起作用(该标签不存在于我的测试页面
我正在尝试以 iframe 内的形式上传图像。我尝试先切换到框架,然后调用 uploadFile。开关可以工作,但上传不起作用。我认为上传文件是在主页的环境中评估的,因此选择器失败,有没有办法在 if
我有一个问题,我正在通过 uploadfile js 创建一个上传函数。如果文件不是excel文件,系统将显示错误。如何通过uploadfile js实现验证excel格式?这是我的来源 $(docu
我正在尝试从 上传文件HTML 标记,使用 uploadFile方法。 uploadFile Promise 已解决,但进度值 { var F
我正在使用 WebClient 对象上的 UploadFile 方法上传文件。上传文件后,我希望得到确认,根据 MSDN(以及 stackoverflow 上的此处:Should I check th
我有一个使用网络客户端将文件上传到服务器的应用程序。我想在文件上传过程中显示进度条。我将如何实现这一目标? 最佳答案 WebClient.UploadFileAsync将允许你这样做。 WebClie
我以前从未使用过 WebClient,我不确定是否应该检查服务器的响应以了解上传是否成功,或者如果没有异常我是否可以让文件上传。 如果我应该检查响应,我该怎么做?正在解析 resposeHeaders
基本上,我正在尝试创建一个端点以将文件上传到 Amazon S3。 async def upload_files(filepath: str, upload_file_list: List[Uploa
我在嵌入式设备上运行 FastAPI 应用程序。嵌入式设备的资源有限(磁盘空间和 RAM)。但是,可以使用空间充足的 SD 卡。我想上传一个大文件并将其存储在 SD 卡上。 FastAPI docum
请问我可以知道使用 uploadfile api 上传到 azure 存储 blob 的最大文件大小是多少。 最佳答案 block Blob 最初的最大大小为 200GB( block 大小为 4MB
我正在尝试将JSON文件上传到nodejs服务器,该服务器使用ng multer作为接收文件的中间件,并且RNFS.uploadFiles仅适用于原始Multer,不适用于具有特定字段的multer,
我正在尝试在项目中使用 WebClient.UploadFile 将文件发布到服务器。 WebClient.UploadFile 接受文件名 uri 作为参数,但我想传递文件流而不是文件名 uri。这
尝试使用以下代码上传文件时出现以下异常: string encodedUrl = "videos/Sample.mp4" CloudBlockBlob
我有三张图片。我使用 javascript 来标记选择了哪一个。用户点击一个后,我将其类别更改为事件。它的 .现在,当我在表单发布后不使用 updatepanel 时,我可以从后面的代码中看到哪个元素
我是一名优秀的程序员,十分优秀!