Wie lade ich eine große Datei (≥3 GB) in das FastAPI-Backend hoch?
Posted: 05 Jan 2025, 09:41
Ich versuche, eine große Datei (≥3 GB) auf meinen FastAPI-Server hochzuladen, ohne die gesamte Datei in den Speicher zu laden, da mein Server nur über 2 GB freien Speicher verfügt.Serverseite:
Clientseite:
was den folgenden 422-Fehler (nicht verarbeitbare Entität) zurückgibt:
Ich bin nicht sicher, was MultipartEncoder tatsächlich an den Server sendet, sodass die Anfrage nicht übereinstimmt. Irgendwelche Ideen?
Code: Select all
@app.post("/uploadfiles")
async def uploadfiles(upload_file: UploadFile = File(...):
pass
Code: Select all
file_name="afd.tgz"
m = MultipartEncoder(fields = {"upload_file":open(file_name,'rb')})
prefix = "http://xxx:5000"
url = "{}/v1/uploadfiles".format(prefix)
try:
req = requests.post(
url,
data=m,
verify=False,
)
Code: Select all
HTTP 422 {"detail":[{"loc":["body","upload_file"],"msg":"field required","type":"value_error.missing"}]}