KamoCRM

Cap dimensione di upload e conversioni concorrenti sui endpoint di pipeline non autenticati

FixVectorService
Shipped
23 settembre 2026 alle ore 02:28 UTC
Author
Kamo
Commit
4820f44

POST /convert-vector e WS /ws/pipeline non prendere auth (vedere il rapporto di compagno di questo commit per il motivo che non è fissato qui) e, fino ad ora, leggere l'intero caricamento di un chiamante in memoria prima di guardare la sua dimensione a tutti — max image size mb è stata definita nelle impostazioni e non ha mai fatto riferimento ovunque. O endpoint ha anche eseguito la rimozione di sfondo e la vettorizzazione (rembg, vtracer — sia CPU-bound, via asyncio.to thread) senza tappo su quanti potrebbero funzionare subito. Insieme che è una porta aperta eseguire questo pod fuori memoria o CPU con una manciata di richieste contemporaneamente, da chiunque possa raggiungere esso — e per ******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** Traefik percorsi /vector-ws/* direttamente a questo servizio, bypassando completamente il gateway di apiservice. - /convert-vector ora legge il caricamento in blocchi e rifiuta (413) non appena la corsa cross totali max image size mb, piuttosto che dopo aver tamponato l'intera cosa. - L'oleodotto WebSocket non ha un equivalente di una lettura schiacciata — Receive text() già detiene telaio completamente decoded dal momento che è visto — così lo stesso limite viene controllato immediatamente dopo base64-decodifica un'immagine/maschera in arrivo, prima che sia mai consegnato a bg rimozione o vettorizzazione. - Una nuova conversione semaphore (max concurrent conversions, default 4, in impostazioni/configmap come max image size mb già è stato) avvolge ogni chiamata bg-removal e vettoriale in entrambi i punti. Eccesso chiamanti aspettare; non sono rifiutati. Test: test resource limits.py (solo pipistrello + httpx — i pesanti deps ML/CV nei requisiti. Txt sono tutti i servizi /*.py importati lazily dentro i corpi di funzione, mai a carico del modulo, quindi i due i punti di ingresso di conversione sono mocked invece di installato). Non gestito da CI oggi; questa costruzione non ha nessuno (build-and-deploy.yml va direttamente dal checkout a docker build/push/deploy). Ogni guardia era verificato prima rosso: il tappo taglia rimosso (un caricamento oversize raggiunge il convertitore mocked invece di essere rifiutato) e il controllo di dimensione WebSocket disabilitato, in un piano di lavoro locale, restaurato dopo.

All changes

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing