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

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: So laden Sie Dateien in Teilen in Google Cloud Storage mit der Anfrage von Fastapi () in den Google Cloud -Speicher hoch

by Anonymous » 01 Feb 2025, 08:45

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?

Top