Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Client side file uploads #1087

Merged
merged 3 commits into from
Aug 26, 2024
Merged

Client side file uploads #1087

merged 3 commits into from
Aug 26, 2024

Conversation

drahoja9
Copy link
Contributor

Closes #1035

Upload files to the Vercel S3 buckets directly from the client (browser) without the server acting as an intermediary.
This also solves the 4.5 MB file size limit that the server uploads have.
@drahoja9
Copy link
Contributor Author

  1. Budeme chtít nějak omezovat datové typy, které uživatel smí nahrát?
  2. Budeme chtít něco dělat po úspěšném uploadu? Např. uložit nějaká metadata do DB (kdo daný file nahrál apod.).

@drahoja9 drahoja9 changed the title Feature/client side file uploads Client side file uploads Aug 20, 2024
@zoul
Copy link
Member

zoul commented Aug 20, 2024

Krása! Díky moc. Tenhle týden jsem ze hry, příští týden se k tomu určitě dostanu.

@drahoja9
Copy link
Contributor Author

Krása! Díky moc. Tenhle týden jsem ze hry, příští týden se k tomu určitě dostanu.

Na to máš odpovídat až příští týden !

@zoul zoul merged commit 13811f3 into master Aug 26, 2024
5 checks passed
@zoul zoul deleted the feature/client-side-file-uploads branch August 26, 2024 14:55
@zoul
Copy link
Member

zoul commented Aug 26, 2024

Supr! Přijde mně to zdravé, mergnul jsem, díky moc.

Omezení typů souborů i logování jsou dobré tipy. Pošleš ještě jeden PR s omezením na JPEG, PNG a PDF? Podle čeho to budeme rozeznávat, podle přípony? Můžem probrat v tom novém PR.

U toho logování si obecně nejsem jistý, kam ho posílat. Máme přihlašovací log a dovedu si představit, že bychom měli celou logovací databázi s různými tabulkami, ale spíš to asi vede k nějakému standardnímu nástroji, že? Proberem ve Slacku? Vykopneš třeba vlákno v #ceskodigital-web?

@drahoja9
Copy link
Contributor Author

Udělám klidně další PR s dodatečnými změnami.

To logování mi nepřijde moc dobrý téma k debatě, protože se k tomu beztak nikdo nevyjádří. Je to hodně technologický téma a ty logy bychom četli tak leda my dva momentálně. 😀 Takže spíš asi řekni ty, jestli ti dává smysl mít u týhle appky logy. Potřeboval jsi je někdy vůbec?
Jinak ukládat metadata k obrázkům můžeme do DB, dává mi to v tomhle případě smysl. Otázkou je, jestli to k něčemu je potřeba a zda to nedodat až v případě, kdy to někdo bude chtít. 🙂

@zoul
Copy link
Member

zoul commented Sep 5, 2024

Filtrování typů souborů jsme odbavili vedle – díky moc.

S tím Slackem jsem to myslel tak, že to tam můžeme pohodlněji probrat klidně i jen my dva, přijde mně to lepší než si psát tady na GitHubu. Teď nějaké základní logy máme (Axiom) a vesměs je nečtu, není kapacita. Na druhou stranu jak se bude aplikace rozrůstat, dává mně to smysl, zejména při řešení problémů jsou logy k nezaplacení. Můžem to nechat ještě nějakou dobu otevřené a vrátit se k tomu, až nás absence logů dostatečně zabolí a bude motivace :)

A totéž řešení můžem asi použít i u těch metadat. Líbilo se mně na tom, že bychom měli aspoň základní kontrolu nad tím, co se v tom úložišti děje – ale tu nakonec mám díky tomu, že ho co měsíc zálohuju, tj. když tam někdo začne nahrávat filmy (ve formátu PDF :), dozvím se to a můžem nějak reagovat.

@drahoja9
Copy link
Contributor Author

drahoja9 commented Sep 5, 2024

No řekni si ty, co bys rád měl. Jelikož to používáš výhradně ty, řekl bych, že máš výhradní právo o tom rozhodovat. 🙂

Napadá mě nějaké úplně hloupé a jednoduché řešení: např. logovat klasicky pomocí console na stdout/stderr. Logy pak případně uvidíme v deploymentu ve Vercelu. Koukal jsem, že to jde max 24h zpátky, ale to by pak byla asi otázka nějaké logovací architektury, jak ty logy sbírat, udržovat a jak v nich hledat. Jen mi to přijde strašný overkill v rámci tohodle projektu, protože mi přijde, že to fakt není potřeba. 🙂

Ta metadata bych ukládal normálně do DB. Kdo co kdy nahrál, s jakou velikostí (kterou případně můžeme taky omezovat, aby z toho teda nebylo nové Uložto.cz). Jen to moc nepomůže s tou kontrolou, protože stejně budeš muset zkoumat data v databázi. K tomu mě napadá, že pokud nebudeme omezovat velikost nebo četnost souborů, může ti to alespoň zaslat e-mail, že se tam děje něco fishy.

@zoul
Copy link
Member

zoul commented Sep 6, 2024

My už tam porůznu logování do konzole máme, tak bych u toho na důležitých místech zůstal nebo průběžně doplňoval a v případě potřeby to časem zlepšíme. Metadata: Aktuálně bych prioritizoval #1094, kde cítím větší potenciál pro uživatelskou hodnotu :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Přidat do uploadovacího nástroje upload přímo z klienta
2 participants