Sto lavorando a questo strano progetto in cui ho bisogno di caricare file enormi (500mb +) e memorizzarli in una tabella postgresql come un blob.
Prima di iniziare a dirmi che la memorizzazione dei file nel database è errata e che dovrei usare il filesystem, ascolta (leggi) i miei motivi:
- L'accesso ai file deve essere autorizzato tramite l'app, laddove vengono applicate le autorizzazioni individuali ad essi.
- Avrò bisogno di conservare una cronologia (versioning) di ogni file, dando accesso alle precedenti modifiche.
- Non posso permettermi il rischio di perdere coerenza tra le relazioni e i file / versioni nel corso degli anni.
Ora, alle domande:
- rischio di ottenere timeout durante il caricamento / download o il processo di download conta come un "keep-alive"?
- I file sono completamente caricati in memoria per ciascun utente o sono memorizzati nel buffer (in streaming) per l'utente? Devo consentire a migliaia di utenti di scaricare file di grandi dimensioni contemporaneamente.
- Ci sono pacchetti che possono aiutarmi con questo?