Improvement: Stop re-uploading bundled cover images to S3 on every project create
I maintainer di solito rispondono entro 1 giorno
@manshi-n ci sta già lavorando.
Dal 9/10/2026.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- Mezza giornata
- Idoneità per principianti
- 50/100
- Tipo di issue
- Refactoring
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- python, typescript
Direzione di ricerca
Start in apps/web/components/projects/create/root.tsx around lines 72-79, where the upload runs on every project create, then check needsUpload in apps/web/helpers/cover-image.helper.ts near line 189 to see when a bundled static cover is already treated as needing no upload. The backend key generation is at apps/api/plane/app/views/asset/v2.py line 389. Done means a project created with a bundled cover makes no new S3 object, while uploaded covers still work. The issue leaves open whether to skip the upload or hash the bytes, so confirm the approach with a maintainer first.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
What's happening
- Every project create uploads one of the 30 bundled covers (
apps/web/app/assets/cover-images/) to S3 under a new random UUID key - Same file, new S3 object, every time
asset/v2.py:389:asset_key = f"{workspace.id}/{uuid.uuid4().hex}-{name}"
Scale of waste (rough math)
- Say 2,000 teams on Cloud
- Say 3 projects per team = 6,000 projects
- ~50KB per cover × 6,000 = ~300MB of duplicate covers
- Only 30 unique files exist — 6,000 objects store 30 images
Fix
- If cover is
local_static, skip the upload - Store the static path directly — the app already renders static paths as-is (
getCoverImageDisplayURL) - Or:
sha256(bytes)as the S3 key instead ofuuid4(), so identical files dedupe
Files
apps/web/components/projects/create/root.tsx:72-79— upload always runs on createapps/web/helpers/cover-image.helper.ts:189—needsUploadruleapps/api/plane/app/views/asset/v2.py:389— random key per upload
Just a small bug i noticed, not much but can save small s3 cost in cloud version
Let me know if this issue can be taken, would like to raise a pr
- Lingua principale
- TypeScript
- Stelle
- 61.1k
- Fork
- 6.1k
- Merge medio
- 1g 12h
- PR unite (30g)
- 80
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di makeplane/plane
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno
-
[bug]: Email notifications show a broken avatar for users without a profile photoForse già presa @gurnoorpannu l’ha presa 5 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
makeplane/plane#10009 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
🐛 Bug: Calendar work items cannot be opened on mobileForse già presa @pennnnnnnnnn l’ha presa 7 giorni fa. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno
-
[bug]: First day of the week section not translated when Idioma is EspañolForse già presa @deepcfr l’ha presa 10 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
makeplane/plane#9967 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
[bug]: First day of the week section not translated when Idioma is EspañolForse già presa @Indira-kumar l’ha presa 7 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di makeplane/plane
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
ccch1mneyyy/dsh-TUI#1631 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
MiniMax-AI/minimax-code#507 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
-
Transient OAuth login failure persists in getLoginStatus and masks active account in dashboardForse di nuovo libera Una pull request per questa issue è stata chiusa senza essere unita. Apertaaccount-pool bug gui
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
lidge-jun/opencodex#7378 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Admin search throws for permissions added through Admin.generalIndexItems('permissions', ...)Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno