KamoCRM

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

FixVectorService
Spegnimento
23 settembre 2026 alle ore 02:28 UTC
Autore
Kamo
Impegno
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.

Tutte le modifiche

Come quello che vedi la spedizione?

Tutto questo arriva nel vostro spazio di lavoro da solo. Iniziare sul piano gratuito e leggere di nuovo questa pagina in un mese.

Inizia gratis per sempreVisualizza il prezzo