Ho una domanda sull'hosting di grandi asset generati dinamicamente e Heroku.Heroku: fornitura di grandi asset generati dinamicamente senza un filesystem locale
La mia app offrirà il download in blocco di un sottoinsieme dei dati sottostanti, che consisterà in un file di grandi dimensioni (> 100 MB) generato una volta ogni 24 ore. Se fossi in esecuzione su un server, vorrei solo scrivere il file nella directory pubblica.
Ma come ho capito, questo non è possibile con Heroku. La directory/tmp può essere scritta, ma la durata garantita dei file è seems to be defined in termini di un ciclo richiesta-risposta, non un processo in background.
Mi piacerebbe utilizzare S3 per ospitare il file di download. Lo S3 gem supporta i caricamenti in streaming, ma solo per i file che già esistono sul filesystem locale. Sembra che la dimensione del contenuto debba essere conosciuta in anticipo, cosa che non sarebbe possibile nel mio caso.
Quindi questo sembra un catch-22. Sto cercando di evitare di creare una gigantesca stringa in memoria durante il caricamento su S3, ma S3 supporta solo i caricamenti in streaming per i file che già esistono sul filesystem locale.
Data un'app Rails in cui non riesco a scrivere sul filesystem locale, come posso fornire un file di grandi dimensioni che viene generato quotidianamente senza creare una stringa di grandi dimensioni in memoria?
Sto affrontando lo stesso problema. Non l'ho ancora affrontato, ma stavo dando per scontato che potrei scrivere sul file system/tmp sul mio operatore delayed_job e rimarrà abbastanza a lungo per caricare il file su S3. Interessato a sentire ciò che le persone suggeriscono! –