So laden Sie Dateien in Teilen in Google Cloud Storage mit der Anfrage von Fastapi () in den Google Cloud -Speicher hochPython

Python-Programme
Anonymous
 So laden Sie Dateien in Teilen in Google Cloud Storage mit der Anfrage von Fastapi () in den Google Cloud -Speicher hoch

Post by Anonymous »

Ich habe einen Datenfluss in einer Fastapi -Anwendung, bei der ein potenziell sehr großer HTTP -Put -Körper hochgeladen wird, und ich muss dies auf Google Cloud -Speicher streamen. Ich verwende die Bibliothek gCloud.aio.Storage für die Interaktion mit Google Cloud Storage, da sie asyncio unterstützt (sie basiert auf AIOHTTP ). Ich versuche, den Körper durch zu streamen, damit ich den ganzen Körper nicht sofort in Erinnerung behalten muss. < /P>
Das Problem, das ich habe, ist, dass die Fastapi's's request.stream () gibt einen async Generator zurück, während der Speicher Client entweder Rohdaten als Bytes oder String erwartet oder etwas basierend auf IO .Iobase Klasse.

Code: Select all

async def upload(request: fastapi.Request, storage_client: gcloud.aio.storage.Storage):
upload_stream = request.stream()
await storage_client.upload(
"my_bucket",
"my_object",
upload_stream
)
Es schlägt mit TypeError fehl: Nicht unterstützter Upload -Typ: "" .
Wie würde ich einen IO bekommen .Iobase abgeleitete Stream-Objekt, das akzeptiert wird, ohne den gesamten Anforderungskörper sofort zu lesen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post